Utilisation de l'objet find
Résolu/Fermé
yodjeseb
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014
-
14 oct. 2013 à 09:39
yodjeseb - 16 oct. 2013 à 13:55
yodjeseb - 16 oct. 2013 à 13:55
A voir également:
- Utilisation de l'objet find
- Notice d'utilisation - Guide
- Vente objet occasion entre particulier - Guide
- Utilisation chromecast - Guide
- Dans la messagerie ci-dessous, envoyez un nouveau message à manon (manon@pixmail.org) en mettant en copie nina (nina@pixmail.org) : objet : colis bonjour, votre colis est arrivé. que répond manon ? ✓ - Forum Loisirs / Divertissements
- Erreur définie par l'application ou par l'objet ✓ - Forum VB / VBA
8 réponses
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 oct. 2013 à 11:42
14 oct. 2013 à 11:42
Bonjour,
essaie ca :
Private Sub CommandButton1_Click()
Dim Trouve As Range
Dim ligne As Integer
Dim col As Integer
textbox2.value = ""
for i = 1 to 10000
if Sheets("Ma Cave") .cells(i,9) = Me.TextBox1.Text
ligne = Trouve.Row
col = Trouve.Column
If textbox = "" then
TextBox2 = Sheets("Ma Cave").Cells(" & ligne & ", " & col & ").Offset(0, -8).Value
else
textbox2= textbox2 & vbnewline & Sheets("Ma Cave").Cells(" & ligne & ", " & col & ").Offset(0, -8).Value
End If
end if
next
if textbox2.value = "" then
MsgBox "pas trouvé"
end if
End Sub
essaie ca :
Private Sub CommandButton1_Click()
Dim Trouve As Range
Dim ligne As Integer
Dim col As Integer
textbox2.value = ""
for i = 1 to 10000
if Sheets("Ma Cave") .cells(i,9) = Me.TextBox1.Text
ligne = Trouve.Row
col = Trouve.Column
If textbox = "" then
TextBox2 = Sheets("Ma Cave").Cells(" & ligne & ", " & col & ").Offset(0, -8).Value
else
textbox2= textbox2 & vbnewline & Sheets("Ma Cave").Cells(" & ligne & ", " & col & ").Offset(0, -8).Value
End If
end if
next
if textbox2.value = "" then
MsgBox "pas trouvé"
end if
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 14/10/2013 à 12:16
Modifié par michel_m le 14/10/2013 à 12:16
Bonjour,
Comme tu veux voir tous les éléments correspondants à ton choix, il ne faut utiliser un Textbox(textbox2) qui ne renvoie qu'une valeur mais une Listbox qui elle renvoie N valeurs et permet de sélectionner 1 ou plusieurs Valeurs de A
Tu renvoie toujours la valeur de la colonne A donc tu peux remplacer
Sheets("Ma Cave").Cells(" & ligne & ", " & col & ").Offset(0, -8).Value
par cells(Ligne,"A")
proposition (non testée) en ne bouclant que sur le nombre de mots clé choisi)
( on suppose que la ligne1 est dédiée aux noms de champ)
petit détail: "find" n'est pas un objet mais une méthode :o)
Michel
Comme tu veux voir tous les éléments correspondants à ton choix, il ne faut utiliser un Textbox(textbox2) qui ne renvoie qu'une valeur mais une Listbox qui elle renvoie N valeurs et permet de sélectionner 1 ou plusieurs Valeurs de A
Tu renvoie toujours la valeur de la colonne A donc tu peux remplacer
Sheets("Ma Cave").Cells(" & ligne & ", " & col & ").Offset(0, -8).Value
par cells(Ligne,"A")
proposition (non testée) en ne bouclant que sur le nombre de mots clé choisi)
( on suppose que la ligne1 est dédiée aux noms de champ)
Private Sub CommandButton1_Click()
Dim Nbre As Integer, Ref As String
Dim Ligne As Integer, Cptr As Integer
Application.ScreenUpdating = False
Ref = Me.TextBox1.Text
With Sheets("Ma Cave")
Nbre = Application.CountIf(Columns("I"), Ref)
If Nbre > 0 Then
Ligne = 1
For Cptr = 1 To Nbre
Ligne = .Columns("I").Cells.Find(Ref, .Cells(Ligne, "I"), xlValues).Row
Me.ListBox1.AddItem = .Cells(Ligne, "A")
Hext
Else
MsgBox "pas trouvé", vbCritical
End With
End Sub
petit détail: "find" n'est pas un objet mais une méthode :o)
Michel
yodjeseb
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014
14 oct. 2013 à 14:23
14 oct. 2013 à 14:23
Merci pour vos réponses mais ça marche pas, meme après avoir corrigé quelques bugs.
--
--
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
14 oct. 2013 à 14:40
14 oct. 2013 à 14:40
Bonjour,
Pour plus de simplicité, peux tu mettre ton fichier sur cjoint.com et mettre le lien ici stp.
Pour plus de simplicité, peux tu mettre ton fichier sur cjoint.com et mettre le lien ici stp.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
14 oct. 2013 à 15:16
14 oct. 2013 à 15:16
Désolé,"Ca marche" après modifs de syntaxe surlignées
La maquette
https://www.cjoint.com/?3JoppQFQjxk
Private Sub CommandButton1_Click()
Dim Nbre As Integer, Ref As String
Dim Ligne As Integer, Cptr As Integer
Application.ScreenUpdating = False
Ref = Me.TextBox1.Text
With Sheets("Ma Cave")
Nbre = Application.CountIf(Columns("I"), Ref)
If Nbre > 0 Then
Ligne = 1
For Cptr = 1 To Nbre
Ligne = .Columns("I").Cells.Find(Ref, .Cells(Ligne, "I"), xlValues).Row
ListBox1.AddItem .Cells(Ligne, "A")
Next
Else
MsgBox "pas trouvé", vbCritical
End If
End With
End Sub
La maquette
https://www.cjoint.com/?3JoppQFQjxk
yodjeseb
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014
15 oct. 2013 à 19:08
15 oct. 2013 à 19:08
Merci michel, j'ai bien avancé, malgré tout je bloque encore sur les cellules composées de plusieurs mots. Dans ta maquette si je rajoute des autres mots dans les cellules "I" ça ne marche plus correctement et je ne trouve pas la solution.
--
--
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
16 oct. 2013 à 09:42
16 oct. 2013 à 09:42
Bonjour
essaiestu dis
Ligne = .Columns("I").Cells.Find(What:=Ref, after:=.Cells(Ligne, "I"), lookat:=xlPart).Row
a la place de
Ligne = .Columns("I").Cells.Find(Ref, .Cells(Ligne, "I"), xlValues).Row
yodjeseb
Messages postés
39
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
10 février 2014
16 oct. 2013 à 13:30
16 oct. 2013 à 13:30
Non ça na change rien.
--
--
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
16 oct. 2013 à 13:41
16 oct. 2013 à 13:41
Ci joint ma maquette de travail où ça fonctionne
https://www.cjoint.com/?3JqnNF8lZy6
peut-être mettre ton classeur (ou un extrait) en pièce jointe
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
https://www.cjoint.com/?3JqnNF8lZy6
peut-être mettre ton classeur (ou un extrait) en pièce jointe
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse