Fonction Execl SI

Résolu
Undevor Messages postés 12 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 13 juillet 2007 - 5 janv. 2007 à 11:02
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 5 janv. 2007 à 17:01
Bonjour à toutes et à tous,

Je rencontre un problème de taille, enfin je crois.....

Je suis en train de créer un tableau avec un report de chiffre sur plusieurs feuilles dans le même classeur. Sur la feuille principale, j'ai créé une liste déroulante avec les 12 mois de l'année. En fonction du mois selectionné, la cellule liée à ce choix donne un chiffre allant de 1 à 12.
J'ai renommé cette cellule liée "Mois". Sur une autre feuille, je souhaite qu'en fonction du chiffre donné par cette cellule liée, je puisse avoir un texte personnalisé. Jusque là pas de problème, je tape une formule de type :

si(Mois=1;"TEXTE 1";Si(Mois=2;"TEXTE 2";Si(Mois=3;"TEXTE 3"))) et ainsi de suite pour les 12 mois....

Le Hic c'est que lorsque ma formule est entièrement tapée, elle me signale une erreur à compter de la 9ème fonction SI. Excel ne peut-il pas gérer cette longueur de formule ou existe t'il un autre moyen ?

Je vous remercie par avance parce que là je seche......

Cordialement

Stephane

10 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
5 janv. 2007 à 11:04
Salut, on ne traite que de programmation sur le forum, mais pour repondre à ta question une formule accepte seulement 9 arguments, et oui c'est la misère!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
5 janv. 2007 à 12:06
Merci d'arrêter de poster dans le bar!
Il y a une section VBA sur vbfrance...
















<hr size="2" />



-Blog-
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 janv. 2007 à 12:14
Il faut donc faire le calcul à la main en mettant le code ci-dessous dans un module en VBA

Ensuite dans ta cellule, tu écrit la formule suivante =TestMois(Mois)

Public Function TestMois(valMois As Integer) As String
    Select Case valMois
        Case 1: TestMois = "Janvier"
        Case 2: TestMois = "Fevrier"
        Case 3: TestMois = "Mars"
        Case 4: TestMois = "Avril"
        Case 5: TestMois = "Mai"
        Case 6: TestMois = "Juin"
        Case 7: TestMois = "Juillet"
        Case 8: TestMois = "Aout"
        Case 9: TestMois = "Septembre"
        Case 10: TestMois = "Octobre"
        Case 11: TestMois = "Novembre"
        Case 12: TestMois = "Decembre"
    End Select
End Function

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
5 janv. 2007 à 13:53
Il n'y a même pas besoin de code VBA pour ça, avec une simple formule Excel, on le fait sans mal :

Tu as déjà rentré quelque part la liste des mois, mettons sur la feuille "Mois". Et bien, à côté, tu mets tes infos.
Je te conseille de faire un truc comme :
A1: Janvier   B1: 1   C1: Texte1
A2: Février   B2: 2   C2: Texte2
...
Tu as donc un tableau A1:C12
Tu nommes ce tableau (Menu Insertion\Nom\Définir) et tu lui donnes le nom "ListeMois" par ex.

Tu as sur une feuille quelconque une cellule avec en Validation une liste déroulante si j'ai bien compris. Mettons dans "Feuille1", en A1.
Et bien, pour avoir le numéro de mois correspondant en A2, il te suffit de mettre A2: =RECHERCHEV(A1;ListeMois;2;FAUX) et pour avoir le texte correspondant en A3, A3:=RECHERCHEV(A1;ListeMois;3;FAUX)

Avantage en plus : C'est bien plus facile à mettre à jour/maintenir quand c'est sous cette forme, et tu n'as pas de formules tellement longues qu'il te faut 10 mn rien que pour comprendre où sont tes arguments (parce que 9 boucles si imbriquées, c'est illisibles ^^ .. et oui, comme on te l'a dit, 9 est le nb d'argument maximal de la formule SI).

Molenn
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 janv. 2007 à 14:00
Si Molenn, spécialiste d'Excel, le dit ......

Maitrisant VB6, mais ne maitrisant pas Excel, c'est vrai que j'ai tendance à partir plus facilement vers du code VBA

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
5 janv. 2007 à 14:19
Et nous sommes sur un forum Codes-Sources je sais
Mais je me suis permis, c'était trop tentant ^^ Et puis, quelqu'un qui en était rendu à coller 9 formules SI imbriquées dans une cellule, doit apprécier une réponse Excel aussi.  Ca ne peut pas faire de mal, moi, depuis que j'ai enfin découvert le fonctionnement des RECHERCHEV et RECHERCHEH (qui ne sont pas très faciles au premier abord), je n'utilise plus que ça !

Mais je te rassure Casy, ton code est très bien aussi ^^ même si j'ai une syntaxe un tout petit peu différente, je ne savais pas qu'on pouvait faire écrire
Case: test
Je faisais toujours
Case
      test

Je m'instruis là encore, merci

Molenn
0
Undevor Messages postés 12 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 13 juillet 2007
5 janv. 2007 à 16:43
Bonjour

Désolé d'avoir dérangé qui se soit, je debute sur le forum....

Merci quand même
0
Undevor Messages postés 12 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 13 juillet 2007
5 janv. 2007 à 16:44
Merci

Je vais essayer ca

Cordialement
0
Undevor Messages postés 12 Date d'inscription mardi 26 décembre 2006 Statut Membre Dernière intervention 13 juillet 2007
5 janv. 2007 à 16:45
Bonsoir,

Effectivement.... Merci de ta reponse, je me sens un peu bete

Cordialement
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 janv. 2007 à 17:01
Mama mia ...

et pourquoi pas :

Private Sub Command1_Click()
  monmois = "8"  ' par exemple
  MsgBox Format("01/" & monmois & "/2006", "mmmm")
End Sub
0
Rejoignez-nous