Remplir un textbox ou une combobox avec le nom de plusieurs feuilles trouvées av [Résolu]

Signaler
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009
-
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009
-
Bonjour,

Encore une question....
Je travaille dans excel 2003 à la création d'une application personnelle sous VBA.
Pour le moment voici ce que je fais pour trouver les feuilles de mon classeur qui une même cellule avec la même valeur .
Dim I As Long, total As Long
For Each monobjet In Worksheets    If monobjet.Range("b19") monchoix Then total total + 1
Next
MsgBox "il y a " & total & " " & monchoix

For Each monobjet In Worksheets
If monobjet.Range("b19") = monchoix Then
monobjet.Select
Range("a1").Activate
Unload Frm_cherche_nom_produit
Exit Sub
End If
Next
MsgBox "Ce produit n'existe pas"
Ceci me dit donc combien il y a de feuilles correspondantes au critère monchoix et me sélectionne la permière seulement...
J'aimerais connaître s'il existe une méthode pour que les noms des feuilles trouvées s'affichent dans un textbox ou un combobox afin que je puisse sélectionner celle que je veux sélectionner.
Merci pour votre aide et bonne journée à toutes et à tous.

11 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
le code que je t'ai fourni ne fonctionne-t'il pas ?

If Combo1.ListIndex<>-1 Then
With Worksheets(Combo1.Text)
.Select
.Range("A1").Activate
End With
Unload Frm_cherche_nom_produit
End If

a placer dans le code d'un click sur un bouton de validation
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009

Si ...il m'a fallu juste changer quelque nom comme text1 par exemple qui ne correspondait pas au nom exact que j'ai donné dans mon code.
par contre une piste svp...
Private Sub Cmd_affiche_Click()
Sheets(ComboBox_affiche_nom_feuille).Activate
End Sub
ce code me retourne une erreur ???
je cherche le code ou la méthode pour activer la feuille que j'aurai choisie dans mon combox...
je viens de trouver mon erreur j'ai omis le .value de ma combobox.
je suis vraiment pas dégourdi
En tout cas , sincèrement merci beaucoup pour cette aide
Bon je vais continueer a tenter d'améliorer mon application budget..j'ai largement de quoi occuer ma retraite...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
oui.
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009

Bonjour,
Merci pour cette réponse qui confirme ce que je pensais....
Qui cherche trouve parait-il... alors je vais continuer à chercher et si je ne trouve pas tant pis.. je retournerai à mon jardin
Bonne journée
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
bon, trêve de plaisanterie ^^
j'ai répondu à ta question, mais je pense que tu ne vas pas tarder à demander "comment ?"

à main levée, je dirait:

Dim sBuffer As String
Dim oSheet As WorkSheet
Dim xsList() As String
Dim i As Long
For Each oSheet In Worksheets
If oSheet.Range("B19") = Text1.Text Then
If Lenb(sBuffer) Then
sBuffer = sBuffer & ";"
End If
sBuffer = sBuffer & oSheet.Name
End If
Next oSheet

xsList = Split(sBuffer, ";")
Combo1.Clear
For i=0 To Ubound(xsList)
Combo1.AddItem xsList(i)
Next i

If Combo1.ListCount then
Combo1.ListIndex = 0
MsgBox "il y a " & Combo1.ListCount & " " & Text1.Text
Else
MsgBox "Ce produit n'existe pas"
End If


et pour activer ta feuille, rien de plus simple :

If Combo1.ListIndex<>-1 Then
With Worksheets(Combo1.Text)
.Select
.Range("A1").Activate
End With
Unload Frm_cherche_nom_produit
End If
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009

rebonjour,
je cherche depuis tout à l'heure et voici ce que j'ai trouvé pour le moment...

Private Sub Cmd_cherche_Click()
monobjet = Worksheet
monchoix = ComboBox_cherche_nom_produit.Value
Dim I As Long, total As Long
For Each monobjet In Worksheets    If monobjet.Range("b18") monchoix Then total total + 1
Next
MsgBox "il y a " & total & " " & monchoix
For Each monobjet In Worksheets
If monobjet.Range("b18") = monchoix Then
ComboBox_affiche_nom_produit.Value = monobjet.Name
Exit Sub
End If
Next
MsgBox "Ce produit n'existe pas"
End Sub

Avec ce code je réussi donc (et pour moi c'est déjà presque un exploit) à copier dans un combobox le nom d'une feuille la première et pas les autres (dans mon cas j'ai deux feuilles qui correspondent au critère de recherche...)..
en tout cas merci pour le code fourni (oupsssssssssssss). je voyais cela plus simple. Je vais essayer ....

A tout a l'heure sans doute...
merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
plus simple ?

Dim oSheet As WorkSheet
Combo1.Clear
For Each oSheet In Worksheets
If oSheet.Range("B19") = Text1.Text Then
Combo1.AddItem oSheet.Name
End If
Next oSheet

If Combo1.ListCount then
Combo1.ListIndex = 0
MsgBox "il y a " & Combo1.ListCount & " " & Text1.Text
Else
MsgBox "Ce produit n'existe pas"
End If
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
je devais pas être bien reveillé ^^ l'autre fonctionne, mais trop long pour ce qu'il a a faire :p
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009

Merci pour cette aide précieuse et indispensable vu mon âge avancé et ma tardive mise en apprentissage de vba pour excel...
Après quelques modifications afin que cela tourne correctement chez moi ça marche super..
Le nom des feuilles concernées s'affichent bien dans ma combo. A présent je cherche la méthode pour activer une des feuilles qui s'affichent dans ma combo;
mes essais de code pour le moment ne me procure que des erreurs (rires).
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
ah oui, désolé, c'est .Text en VB6 et .Value en VBA ^^
Messages postés
34
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
27 février 2009

Tu n' as pas a être désolé....
sans ton aide je ne serai arrivé à rien....
Tous ces codes, ces syntaxes, ces méthodes etc sont encore pour moi plus que floues...
L'heure du repas approchant...Bon appêtit