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
- Face time - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum Excel
- Verrouiller cellule excel sans verrouiller la feuille - 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