VBA- lisbox-user form

VBA- lisbox-user form - VB/VBA/VBS - Programmation

Marsh Posté le 20-06-2012 à 15:18:21    

Bonjour à tous, :pt1cable:  
 
Je dois réaliser une base de données et je découvre l'outil VBA, je suis débutante de chez débutante
 
Je suis bloquée car j'ai un classeur, constitué de 11 feuilles, j'ai ajouté une feuille "accueil" sur laquelle je souhaite mettre une liste déroulante pour que l'utilisateur choisisse la feuille sur laquelle il veut se rendre.
 
Je suis donc passée par userform où j'ai insérer une listbox mais je ne sais pas comment faire ce lien.
 
Imaginons que j'ai une feuille qui s'appelle: "arbres", une autre "fleurs" et une autre "fruit", comment fait-on pour avoir une list box qui proposerait ces 3 noms et redirigerait sur la feuille adaptée?
 
Ma question peut vous sembler basique mais je vous serai reconnaissante si vous me répondez   :)

Reply

Marsh Posté le 20-06-2012 à 15:18:21   

Reply

Marsh Posté le 20-06-2012 à 16:30:48    

Bonjour,
 
Voici un exemple avec les feuilles que vous citez et d'autres supplémentaires !
 
Il suffira d'adapter les noms de chaque feuille ( 11 ) en respectant impérativement l'ordre chronologique, afin de faire fonctionner la macro correctement  !
 
 
http://cjoint.com/?BFuqSHIwT6j


Message édité par JBARBE le 20-06-2012 à 16:57:42
Reply

Marsh Posté le 20-06-2012 à 18:34:47    

Merci beaucoup pour votre réponse, je comprend mieux!
Seulement j'ai une petite question comment avez vous fait pour que dans la case repère s'inscrive le numéro correspondant à l'ordre de la liste. i.e. pour que lorsqu'on choisit B par exemple, repère = 5, j'imagine que c'est à partir de la fonction ligne mais il faut rajouter une condition if du style if choix du bouton= B; then repère = ligne(B)+3;  
comment créer ce lien entre la liste déroulante et cette formule excel?

Reply

Marsh Posté le 20-06-2012 à 20:10:05    

Clic droit sur la liste déroulante > format de contrôle > contrôle :
 
Plage d'entrée = D4 : D15
 
Cellule liée = E4
 
La boucle de la macro commence par 1 jusqu'à 100
 
Dim i As Integer ' Variable i
 
For i = 1 To 100 ' début boucle
 
 If i > 11 Then Exit Sub ' si i dépasse 11( feuilles) ( fin de la boucle)
 
 If Range("repere" ) = i Then ' la cellule "repere" commence par 1 qui s'affiche automatiquement( donc la premiére feuille "Acceuil" )
 
  Sheets(i + 1).Select ' pour la premiére feuille aprés Acceuil il faut +1
 
Exit For 'fin de la boucle si la feuille est trouvée
 
 End If ' fin de la condition
 
 Next i ' fin boucle aprés 100

Reply

Marsh Posté le 21-06-2012 à 09:55:23    

Je vous remercie infiniment!
Bonne journée,
Emmeline

Reply

Marsh Posté le 21-06-2012 à 12:19:28    

Salut, à titre de curiosité une autre approche via des hyperliens sur http://cjoint.com/?3FvmrEfVtbT , embryon à adapter au contexte


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 27-06-2012 à 09:37:15    

J'ai vu le lien trop tard, il n'est plus activé...mais merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed