VBA Selection de la cellule en face de la valeur recherchée
Résolu/Fermé
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
-
3 oct. 2012 à 16:44
Miss_tik76 Messages postés 26 Date d'inscription dimanche 3 août 2008 Statut Membre Dernière intervention 23 janvier 2014 - 4 oct. 2012 à 09:22
Miss_tik76 Messages postés 26 Date d'inscription dimanche 3 août 2008 Statut Membre Dernière intervention 23 janvier 2014 - 4 oct. 2012 à 09:22
A voir également:
- VBA Selection de la cellule en face de la valeur recherchée
- Aller à la ligne dans une cellule excel - Guide
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Faites en sorte que la cellule a1 affiche exactement ce qui est montré sur cette image. quel mot apparaît en b1 ? - Forum Excel
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Affecter la valeur d'une cellule à une variable vba ✓ - Forum Bureautique
7 réponses
magicshark
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
13
3 oct. 2012 à 16:56
3 oct. 2012 à 16:56
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
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
3 oct. 2012 à 17:04
3 oct. 2012 à 17:04
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
Submin
Messages postés
382
Date d'inscription
vendredi 2 mars 2012
Statut
Membre
Dernière intervention
1 avril 2016
226
3 oct. 2012 à 18:56
3 oct. 2012 à 18:56
Inutile : (sauf si utilisation derriere)
Et met plutot :
Si tu veux le mettre dans un variable avant de le comparer dans un if mais sinon mais directement commande.Value dans ton If
Nb_Tr = Application.CountIf(Col_A, v_commande) If Nb_Tr > 0 Then Lig = 1
Et met plutot :
Dim v_commande as Variant
Si tu veux le mettre dans un variable avant de le comparer dans un if mais sinon mais directement commande.Value dans ton If
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 3/10/2012 à 18:05
Modifié par michel_m le 3/10/2012 à 18:05
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 ?
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
3 oct. 2012 à 18:32
3 oct. 2012 à 18:32
Pourquoi ce code vous dit quelque chose ?
J'essayerai votre solution demain !
J'essayerai votre solution demain !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Miss_tik76
Messages postés
26
Date d'inscription
dimanche 3 août 2008
Statut
Membre
Dernière intervention
23 janvier 2014
1
4 oct. 2012 à 09:22
4 oct. 2012 à 09:22
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 !
Submin
Messages postés
382
Date d'inscription
vendredi 2 mars 2012
Statut
Membre
Dernière intervention
1 avril 2016
226
Modifié par Submin le 3/10/2012 à 16:53
Modifié par Submin le 3/10/2012 à 16:53
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
Submin
Messages postés
382
Date d'inscription
vendredi 2 mars 2012
Statut
Membre
Dernière intervention
1 avril 2016
226
Modifié par Submin le 3/10/2012 à 18:52
Modifié par Submin le 3/10/2012 à 18:52
Met plutot ça :
testé et ok chez moi ;)
Dim DerligA, Iter As Integer DerligA = Columns("A").Find("*", , , , , xlPrevious).Row For Iter = 1 To DerligA If Cells(Iter, 1) = commande.Value Then produit.AddItem Cells(Iter, 2) End If Next
testé et ok chez moi ;)