Textbox & Feuille

Résolu
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011 - 6 juil. 2011 à 10:53
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011 - 6 juil. 2011 à 12:13
Bonjour,

Je suis novice en vba mais cependant j'essaye depuis deux jours de positionner dans une textbox le nom de feuille (ça pas de problème) :

For Each Worksheet In ActiveWorkbook.Sheets
UserForm2.ComboBox1.AddItem (Worksheet.Name)
Next

Cependant j'aimerai commencer à partir de la feuille tata et je n'y arrive pas ....
Quelqu'un pourrait il me mettre sur le chemin ?
Merci.

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
6 juil. 2011 à 11:44
Bon.
1) tout d'abord : mon code précédent risque de te conduire à l'impossible (si par exemple la combo est encore vide et tu veux placer l'item en cours à un index > 0)
2)Regarde ce que fait cet exemple avec 3 feuilles nommées Feuil1, Feuil2 et Feuil3
Je vais plus loin que toi, encore, puisque je vais jusqu'à définir l'ordre de leur index dans la combo.
Analyse et tu vas comprendre :
Private Sub CommandButton1_Click()
  Dim feuille As Worksheet, toto As String, ou0 As Integer, ou As Integer, i As Integer
  toto = "@Feuil2/1@Feuil3/2@Feuil1/3"
  For i = 0 To Worksheets.Count - 1
    ComboBox1.AddItem ""
  Next
  For Each feuille In ActiveWorkbook.Sheets
   If feuille.Visible = True Then
     ou0 = InStr(toto, "@" & feuille.Name & "/") + Len(feuille.Name) + 2
     ou1 = Val(Mid(toto, ou0)) - 1
     UserForm1.ComboBox1.List(ou1) = feuille.Name
   End If
 Next
End Sub

Amuse-toi à masquer la feuille de ton choix et vois


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
6 juil. 2011 à 11:07
Bonjour,
VBA n'est pas VB.Net ! Pense à choisir la sectiuon adéquate, la prochaine fois.
Tu parles de Textbox mais ton code montre que tu utilises une combobox !


Ouvre AddItem dans ton aide VBA ===>> admission d'un argument de placement

Exemple pour ton cas (tel qu'exposé) :

For Each Worksheet In ActiveWorkbook.Sheets
   If Worksheet.Name = "tata" Then
     UserForm2.ComboBox1.AddItem Worksheet.Name, 0
   Else
     UserForm2.ComboBox1.AddItem Worksheet.Name
   End If
 Next


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011
6 juil. 2011 à 11:33
Désolé j'ai juste regardé que mon message soit dans la partie débutant ...
Pour la textbox je confond à chaque fois.
Par contre je vais recommencer l'explication.
Dans mon classeur j'ai 3 feuilles que j'ai masqué et je ne veux en aucun cas les faire apparaitre dans ma combobox ...
Merci
cs_agenais Messages postés 10 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 16 août 2011
6 juil. 2011 à 12:13
Merci pour ton aide.
Finalement j'ai juste pris le morceau suivant :
If feuille.Visible = True Then

en plaçant correctement mon end if cette fois ci car je pense que mon erreur venait de là.
Encore merci.
Rejoignez-nous