nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009
-
19 févr. 2009 à 08:34
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009
-
19 févr. 2009 à 11:31
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.
A voir également:
Remplir un textbox ou une combobox avec le nom de plusieurs feuilles trouvées av
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009 19 févr. 2009 à 11:20
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...
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009 19 févr. 2009 à 08:55
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 19 févr. 2009 à 08:56
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
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009 19 févr. 2009 à 10:17
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 ....
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 19 févr. 2009 à 10:21
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
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009 19 févr. 2009 à 11:05
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).
nasilo
Messages postés34Date d'inscriptionvendredi 18 avril 2008StatutMembreDernière intervention27 février 2009 19 févr. 2009 à 11:31
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