Liste déroulante et If ...then - VB/VBA/VBS - Programmation
Marsh Posté le 14-02-2007 à 15:51:34
Alors,
tu dois plutot utiliser les "zones de liste déroulantes".
Exemple :
sur la feuil2 de ton classeur tu écris "Humain" en A1 et "Gnome" en A2
sur la feuil1, tu fais : Affichage/Barre d'outils/Boite à outils controle
dans le menu qui s'affiche choisis "zone de liste déroulante" et dessine la zone avec la souris sur ta feuil1
tu cliquesensuite dans le même menu (boite à outils) sur "Propriétés
et dans ListFillRange tu écris :
Feuil2!$A$1:$A$2
tu double-clique ensuite sur ta combobox et tu copies le code suivant :
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Humain" Then Cells(1, 2) = "6m"
If ComboBox1.Value = "Gnome" Then Cells(1, 2) = "9m"
End Sub
Et voila.
Marsh Posté le 14-02-2007 à 19:28:36
Je me suis réjoui trop vite ! La question maintenant c'est :
1. est-ce que c'est possible de demander de mettre le résultat dans la cellule d'une autre feuille que celle de la liste et
2. est-ce qu'on peut mettre dans cette cellule le contenu d'une autre cellule ?
Car je ne vois pas comment je peux faire
Sub distance ()
Dim Race As String
Dim Dist As String
Race = Range ("A1" )
If Race = "humain" then Dist = Range("feuil2!A1" )
If Race = "gnôme" then Dist ="Range("feuil2!A2" )
Range ("B1" ) = Dist
End Sub
avec le système de Combobox...
Marsh Posté le 15-02-2007 à 11:54:46
Pour afficher ton résultat sur une autre page tu ajoutes la référence de cette feuille :
If ComboBox1.Value = "Gnome" Then _
activeworkbook.worksheets(le chiffre que tu veux).cells(X,Y)="9m"
Pour y mettre le contenu d'une autre cellule :
If ComboBox1.Value = "Gnome" Then _
activeworkbook.worksheets(le chiffre que tu veux).cells(X,Y)= _
activeworkbook.worksheets(le chiffre que tu veux).cells(X',Y')
C'est tout simple.
Marsh Posté le 15-02-2007 à 12:16:59
Si tu veux rapidement te perfectionner en vba surtout sur les basics, le mieux c'est internet.
Les pages d'exemple et de théorie avec lesquelles j'ai appris (en 2 semaines max) :
http://www.excelabo.net
http://www.cathyastuce.com
http://www.info-3000.com/vbvba/
http://drq.developpez.com/vb/tutoriels/String/
http://bvrve.club.fr/Astuces_Michel/02excelvba.html
Marsh Posté le 15-02-2007 à 14:19:59
Merci encore !
Je vais continuer mon apprentissage en suivant ton conseil. Peut-être à dans quelques semaines, quand parce que j'en aurais appris plus, je voudrais en faire plus et donc j'aurais un pb à un moment
Marsh Posté le 13-02-2007 à 20:47:49
Bonjour,
Je suis débutant en vba, et c'est pas toujours facile, facile . Voilà j'ai en partie réussi ce que je voulais, c'est afficher qqc (exemple 9m) dans une cellule (B1) si c'est écrit "humain" dans la cellule (A1) grâce à ce code :
Sub distance ()
Dim Race As String
Dim Dist As String
Race = Range ("A1" )
If Race = "humain" then Dist = "9m"
If Race = "gnôme" then Dist ="6m"
Range ("B1" ) = Dist
End Sub
Je voudrais obtenir la même chose avec une liste déroulante à la place de tapper manuellement "humain" en A1...mais lorsque je mets une liste en A1 ça ne marche plus...
Quelqu'un connait-il la solution ( et peut-il me l'expliquer de manière pas trop complexe..)?
Merci d'avance !