Liste de sélection d'Onglet spécifique [Résolu]

Signaler
Messages postés
10
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
16 août 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

J'ai actuellement un document de travail avec deux types d'onglets. Le premier est un onglet mensuel (Nom du mois - Année en cours), le second un annuel (Bilan Annuel XXXX - XXXX).
Ce document va être utiliser sur plusieurs années c'est pourquoi j'aimerai savoir si c'est possible de séparer ces documents dans deux listes de sélection d'onglets.
A l'heure actuelle j'utilise un code type qui me permet de recenser tous les onglets visibles et est placer dans des combobox ...
For Each Worksheet In ActiveWorkbook.Sheets
If Worksheet.Visible = True Then
    UserForm7.ComboBox1.AddItem (Worksheet.Name)
End If
Next


En espérant avoir étant clair dans l'explication. Merci par avance.

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Bonjour,

je ne suis pas certain d'avoir bien compris ce que tu veux faire.
S'il ne s'agit que de séparer les onglets d'un type de ceux de l'autre, il te suffit de les afficher dans deux comboboxes ou listboxes distinctes.
Pour ce faire : voilà le principe dans ta boucle for each :
dim F as worksheet
For Each F In ActiveWorkbook.Sheets
If F.Visible = True Then
   If F.Name like ..... then
     ' tu alimentes telle combo ou listbox
   else if F.name like .... then
     ' tu alimentes telle autre  combo ou listbox
   end if

end if
Next

je te laisse mettre en oeuvre ce mécanisme simple.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Il te faudra alors faire du genre :
dim F as worksheet, liste1 as string, liste2 as string
For Each F In ActiveWorkbook.Sheets
If F.Visible = True Then
   If F.Name like ..... then
     if liste1 = "" then
          liste1 = liste1 & F.Name 
     else
          liste1 = vbnewline & liste1 & F.Name 
     end if
   else if F.name like .... then
     if liste2 = "" then
          liste2 = liste1 & F.Name 
     else
          liste2 = vbnewline & liste1 & F.Name 
     end if
   end if

end if

Next

puis écriree le contenu de chacune de ces deux variables (Liste1 et Liste2) dans les cellules de ton choix.

J'appelle toutefois ton attention sur le fait que ce ne sera alors pas vraiment pratique (pour sélectionner dans le contenu d'une cellule) !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
10
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
16 août 2011

Merci de la réponse, je ne connaissais pas le système avec like donc après j'ai cherché un peu car je ne mettais pas "*Bilan*" mais uniquement "Bilan"... C'est là qu'on voit qu'on est novice ^^
Merci beaucoup.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Bien. Content pour toi.
Fais-moi maintenant à ton tour plaisir : prends soin, la prochaine fois, d'ouvrir dans le thème VBA (et non VB6) une discussion relative à un problème sous VBA (c'est vraiment important).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
10
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
16 août 2011

J'ai une autre question dans le même style aussi.
Si je désire faire la même chose mais dans afficher la liste dans une cellule je fais comment ?
Exemple dans A1 je désire mettre la liste de tous les onglets "Mois" et dans B1 une liste avec tous les onglets "Bilan" .... Déjà est possible et après comment dois je m'y prendre ?
Merci à tous !
Messages postés
10
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
16 août 2011

Merci et désolé d'avoir mal positionné le sujet dans le forum.

Cordialement
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Attention et corrige ici (frappé à main levée) :

else if F.name like .... then
if liste2 = "" then
liste2 = liste2 & F.Name
else
liste2 = vbnewline & liste2 & F.Name
end if

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient