Liste de sélection d'Onglet spécifique

Résolu
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011 - 16 août 2011 à 09:36
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 16 août 2011 à 10:37
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 août 2011 à 09:51
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 août 2011 à 10:26
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
3
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011
16 août 2011 à 10:08
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 août 2011 à 10:14
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
0

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

Posez votre question
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011
16 août 2011 à 10:16
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 !
0
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011
16 août 2011 à 10:30
Merci et désolé d'avoir mal positionné le sujet dans le forum.

Cordialement
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 août 2011 à 10:37
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
0
Rejoignez-nous