begin process at 2008 08 22 02:34:48
1 229 759 membres
30 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : VBA rechercher dans une colonne [ Divers / Débutants ] (lolpop)

VBA rechercher dans une colonne le 20/06/2006 13:50:57

lolpop
Bonjour
j'ai un petit probleme de recherche, j'utilise la fonction fin() mais le probleme c'est que si ce que je recherche existe plusieur fois il ne m'en retourne qu'un,
comment faire pour avoir toues les résusltats dans un listbox?
peut-on compter les résultat valide?
merci de votre aide

Re : VBA rechercher dans une colonne le 20/06/2006 14:17:25

Drikce06
Membre Club
Bonjour,

cette boucle ajoute dans un listbox les éléments de la colonne A jusqu'à ce qu'il n'y a plus de valeur. Rajoute une condition pour préciser ce que tu veux retrouver dans le listbox et cela devrai marcher

dim tableau as string
i = 1
Do
ReDim Preserve tableau(1 To i)
tableau(i) = Range("A" & i).Value
listbox1.AddItem tableau(i)
i = i + 1
Loop Until (Range(("A" & i)).Value) = "" Or IsEmpty(Range(("A" & i)).Value)


 Drikce 06

Re : VBA rechercher dans une colonne le 20/06/2006 14:24:46

lolpop
d'accord merci je vais regardé ton code et l'adapter,
merci beaucoup

Re : VBA rechercher dans une colonne le 20/06/2006 14:25:20

lolpop
^merci beaucoup, je vais adapter ton code,

merci merci merci :)

Re : VBA rechercher dans une colonne le 20/06/2006 21:45:54

lolpop
je n'arrive toujours pas a faire mon module de recherche, un petit indice de plus ? :)

Re : VBA rechercher dans une colonne le 20/06/2006 21:54:13

mortalino
Membre Club
Salut, As tu un exemple concret ? Par exemple quelques lignes de données, dans quelles colonnes sont stockées tes données ainsi qu'une recherche. Je reviens demain matin si tu as posté l'exemple, je t'aiderai sans problème. @++ --Mortalino-- Le Mystérieux Chevalier "Provençal, le Gaulois" N'oubliez pas de lire le règlement !

Re : VBA rechercher dans une colonne le 20/06/2006 22:48:55

lolpop

oui bien sur,
alors j'ai une colonne A qui contient des prenoms, par exemple:
morgan
margaux
kevin
tibault
morgan
toto
kevin
momo

voila ensuite j'ai créé un userform1 avec un textbox et un bouton pour validé, la textbox sert a récupérer le mot rechercher, quand on clique sur le bouton ca ouvre l'userform2 avec un une list box simple( on comence doucement lol)
mais je n'arrive pas a faire la recherche, je voudrai qu'il s'affiche dans la list box les célule qui réponde au critère, par exemple si on recherche "mor" ca renvoi ligne 1 morgan et ligne 2 morgan, et si on cherche mo ca renvoir morgan,morgan,momo.
j'ai essayé de faire un code mais ca ne marche pas j'ai un message d'erreur:

Private Sub UserForm_Initialize()
chercher = UserForm1.TextBox1.Value
MsgBox chercher
Dim limit, supp, i, j As Long

limit = 10000 'on limite a 10000 lignes

'on cherche en commençant par 10000 jusqua ce que la colone ne soit plus égale a rien
While Feuil1.Cells(limit, 1) = ""
limit = limit - 1
Wend

ok = Feuil1.Columns(1).Find("" & chercher, ligne, , , xlByRows, xlNext).Value
MsgBox ok
UserForm2.ListBox1.AddItem ok

If ok <> "" Then
j = 1
While j < limit
ligne = "A" & j
'msgBox ligne
ok = Feuil1.Columns(1).FindNext(ligne)
MsgBox ok
j = j + 1
UserForm2.ListBox1.AddItem ok
Wend
End If

End Sub


Re : VBA rechercher dans une colonne le 21/06/2006 06:59:35

mortalino
Membre Club
Salut, je te propose ceci : Private Sub UserForm_Initialize() <= pas dans le Initialize, ds Bouton click car il faut attendre la valeur du TextBox pour la recherche Private Sub CommandButton1_Click() Dim chercher As String, NomTemp As String Dim AncienneLigne As Long, NouvelleLigne As Long chercher = TextBox1.Text Range("A1").Select Cells.Find(What:=chercher, After:=ActiveCell, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate NomTemp = Selection.Value UserForm2.ListBox1.AddItem NomTemp Do AncienneLigne = ActiveCell.Row Cells.FindNext(After:=ActiveCell).Activate NouvelleLigne = ActiveCell.Row If NouvelleLigne < AncienneLigne Or NouvelleLigne = AncienneLigne Then Exit Do NomTemp = Selection.Value ListBox1.AddItem NomTemp Loop End Sub Voilà, tester et approuvé (par moi). Je précise que ça ne cherche pas que dans la colonne A mais dans toutes les cellules de la feuille sélectionnée. @++ --Mortalino-- Le Mystérieux Chevalier "Provençal, le Gaulois" N'oubliez pas de lire le règlement !

Re : VBA rechercher dans une colonne le 21/06/2006 07:20:47

lolpop
merci pour ton code je vais voir ca ce matin.
mais juste 1-2 truc que je comprene :)
 pour les recherche avec find on est obliger d'activer les céllules apparament non?
ensuite tu marque : NomTemp = Selection.Value
Selection.Value c'est le text de la cellule active c'est bien ca?

Re : VBA rechercher dans une colonne le 21/06/2006 07:38:04

mortalino
Membre Club
De rien, Effectivement la cellule qui contient le résultat est activée. Du coup, pour récupérer la valeur (Value) de la cellule sélectionnée, on fait Selection.Value que je place dans une variable (NomTemp) pour le placement dans la ListBox. Juste un p'tit truc, tu as déclaré dans ton code : Dim limit, supp, i, j As Long Sache que seul 'j' est de type Long. Voici la bonne syntaxe : Dim limit As Long, supp As Long, i As Long, j As Long @++ et bonne prog ! --Mortalino-- Le Mystérieux Chevalier "Provençal, le Gaulois" N'oubliez pas de lire le règlement !


[Page 1 Page 2]
Classé sous : vba, recherche, probleme, colonne, rechercher

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS