VBA Selection de la cellule en face de la valeur recherchée
Résolu
Miss_tik76
Messages postés
27
Statut
Membre
-
Miss_tik76 Messages postés 27 Statut Membre -
Miss_tik76 Messages postés 27 Statut Membre -
Bonjour,
Bon le titre n'est pas clair... Alors j'explique :
J'ai des valeurs dans ma colonne A. Il peut y avoir plusieurs fois la même valeur.
Je voudrai pouvoir rechercher une valeur de la colonne A, et que le programme me sélectionne les valeurs correspondantes situées dans la colonne B.
Et avec ces valeurs sélectionnées de la colonne B, je voudrai alimenter une combobox...
Ci-dessous ce que j'ai fait mais ca ne fonctionne pas...
Pouvez vous m'aider s'il vous plait !!!
Merci
Bon le titre n'est pas clair... Alors j'explique :
J'ai des valeurs dans ma colonne A. Il peut y avoir plusieurs fois la même valeur.
Je voudrai pouvoir rechercher une valeur de la colonne A, et que le programme me sélectionne les valeurs correspondantes situées dans la colonne B.
Et avec ces valeurs sélectionnées de la colonne B, je voudrai alimenter une combobox...
Ci-dessous ce que j'ai fait mais ca ne fonctionne pas...
v_commande = commande.Value 'Recherche derniere ligne colonne A DerligA = Columns("A").Find("*", , , , , xlPrevious).Row Set Col_A = Range("A2:A" & DerligA) 'Pour diminuer le temps de recherche Nb_Tr = Application.CountIf(Col_A, v_commande) If Nb_Tr > 0 Then Lig = 1 For Iter = 1 To Nb_Tr Lig = Columns("A").Find(v_commande, Cells(Lig, "A"), , xlWhole).Offset(0, 1).Select Next Iter ' v_dpr = Selection With produit .RowSource = Selection End With End If
Pouvez vous m'aider s'il vous plait !!!
Merci
A voir également:
- VBA Selection de la cellule en face de la valeur recherchée
- Excel compter cellule couleur sans vba - Guide
- Aller à la ligne dans une cellule excel - Guide
- Face time - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Excel cellule couleur si condition texte - Guide
7 réponses
je suis pas super en vba donc je vais te donner une idée plutôt algorithmique
variables recherche : chaîne i:entier début i=1 tant que (cellule("A"+i) != "") //cellule("A"+i) retourne la valeur contenu par la cellule "Ai" si cellule("A"+i) == recherche alors ajouterCombo(cellule("B"+i)) //ajouterCombo est une procédure qui ajoute une valeur //dans la combo fin si i=i+1 fin tant que fin
Ci-dessous comment je l'ai inséré. Mais j'ai du louper un truc car ca ne fonctionne pas
Dim Col_A As Range Dim DerligA, Lig As Integer, Iter As Long Dim v_commande, Nb_Tr As Long v_commande = commande.Value 'Recherche derniere ligne colonne A DerligA = Columns("A").Find("*", , , , , xlPrevious).Row Set Col_A = Range("A2:A" & DerligA) Nb_Tr = Application.CountIf(Col_A, v_commande) If Nb_Tr > 0 Then Lig = 1 For Iter = 1 To DerligA If Cells(Iter, 1) = v_commande Then produit.AddItem Cells(Iter, 2) End If Next End If
bonjour
Curieux, ca me dit quelque chose ton code !!! ;o)
ATTention:
on suppose que Produit est le nom de ton combo ?
si oui, il faut préciser le nom de la feuille dans lequel il est situé
ou s'il il est dans un userform écrire Me.produit
a quoi sert v_dpr ?
Curieux, ca me dit quelque chose ton code !!! ;o)
lig = 1 For Iter = 1 To Nb_Tr lig = Columns("A").Find(v_commande, Cells(lig, "A"), , xlWhole).Row ' v_dpr = Selection produit.AddItem Cells(lig, "B").Value Next
ATTention:
on suppose que Produit est le nom de ton combo ?
si oui, il faut préciser le nom de la feuille dans lequel il est situé
ou s'il il est dans un userform écrire Me.produit
a quoi sert v_dpr ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Après multiple bidouilles, voici le code qui fonctionne...
Je vous remercie tous pour votre aide !
Private Sub produit_enter() Sheets("Base S").Select Dim Col_A As Range Dim DerligA, Lig, Iter As Integer Dim v_commande, Nb_Tr As Long v_commande = commande.Value With Worksheets("Base S") DerligA = Columns("A").Find("*", , , , , xlPrevious).Row Set Col_A = Range("A2:A" & DerligA) Nb_Tr = Application.CountIf(Col_A, v_commande) If Nb_Tr > 0 Then Lig = 1 For Iter = 1 To Nb_Tr Lig = Columns("A").Find(v_commande, Cells(Lig, "A"), , xlWhole).Row produit.AddItem Cells(Lig, "B").Value Next End If End With End Sub
Je vous remercie tous pour votre aide !
Bonjour,
Tu t'embête pour rien la :D
Deja tu essai de diminué le temps de recherche de quelque chose qui prend des micro seconde :D
donc tu peux meme faire une methode bourrin et ça prendra moins de 0.1 sec
du style :
L'idée est la par contre je suis pas passé par VBA donc il y a peut etre 1 ou 2 faute de syntaxe.. Hésites pas si besoin de plus
Tu t'embête pour rien la :D
Deja tu essai de diminué le temps de recherche de quelque chose qui prend des micro seconde :D
donc tu peux meme faire une methode bourrin et ça prendra moins de 0.1 sec
du style :
for i=1 to DerligA if cells(i,1) = cequetucherche then combobox1.additem cells(i,2) endif next
L'idée est la par contre je suis pas passé par VBA donc il y a peut etre 1 ou 2 faute de syntaxe.. Hésites pas si besoin de plus