VBA se servir d'une combobox pour rechercher
Résolu/Fermé
Usgpa
Messages postés
14
Date d'inscription
vendredi 8 janvier 2010
Statut
Membre
Dernière intervention
25 mars 2010
-
8 janv. 2010 à 11:27
Usgpa - 12 janv. 2010 à 11:52
Usgpa - 12 janv. 2010 à 11:52
A voir également:
- Combobox vba
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
18 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 janv. 2010 à 11:36
8 janv. 2010 à 11:36
Bonjour,
Sous Microsoft Visual Basic, double clic sur la combobox, le code suivant apparait :
Entre ces deux lignes écrire :
Private Sub ComboBox1_Change()
End Sub
A adapter bien sur
Sous Microsoft Visual Basic, double clic sur la combobox, le code suivant apparait :
Private Sub ComboBox1_Change() End Sub
Entre ces deux lignes écrire :
Private Sub ComboBox1_Change()
Dim a As Integer Dim cherche As String cherche = ComboBox1.Value a = Sheets("Feuil1").Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row TextBox1 = Range("A" & a).Offset(0, 1).Value TextBox2 = Range("A" & a).Offset(0, 2).Value TextBox3 = Range("A" & a).Offset(0, 3).Value
End Sub
A adapter bien sur
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 janv. 2010 à 11:56
8 janv. 2010 à 11:56
essaie sans Sheets("Feuil2") comme ceci :
a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
Sinon comment complètes tu ta combobox?
a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
Sinon comment complètes tu ta combobox?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 janv. 2010 à 11:03
11 janv. 2010 à 11:03
Salut,
Bien sur. Le code :
ou
Bien sur. Le code :
a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Rowte renvoie un chiffre : le numéro de la ligne. Après, tu peux t'en servir pour supprimer une ou plusieurs cellules :
Range("B" & a).Delete
ou
Range(Cells(1,a),Cells(6,a)).Deletepour supprimer de colonne A à colonne F
Usgpa
Messages postés
14
Date d'inscription
vendredi 8 janvier 2010
Statut
Membre
Dernière intervention
25 mars 2010
1
8 janv. 2010 à 11:44
8 janv. 2010 à 11:44
Merci Pijaku. Apparament mon Vba bloque sur le :
a = Sheets("Feuil2").Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
Il me le surligne en jaune et me signale une erreur de Type "9".
a = Sheets("Feuil2").Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
Il me le surligne en jaune et me signale une erreur de Type "9".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 janv. 2010 à 11:47
8 janv. 2010 à 11:47
Derme une erreur de type "9"? Quel est le message d'erreur complet?
Usgpa
Messages postés
14
Date d'inscription
vendredi 8 janvier 2010
Statut
Membre
Dernière intervention
25 mars 2010
1
8 janv. 2010 à 11:49
8 janv. 2010 à 11:49
l'indice n'appartient pas à la sélection...
Usgpa
Messages postés
14
Date d'inscription
vendredi 8 janvier 2010
Statut
Membre
Dernière intervention
25 mars 2010
1
8 janv. 2010 à 11:57
8 janv. 2010 à 11:57
Pijaku Merci !!! Ta deuxième solution était la bonne !!! Mzerci beaucoup et bonne journée à toi !
Bonjour,
J'aimerais savoir si il était possible, grâce à un bouton "supprimer" d'un userform, de supprimer les cellules ainsi trouvées sans devoir supprimer toute la ligne.
Merci d'avance.
J'aimerais savoir si il était possible, grâce à un bouton "supprimer" d'un userform, de supprimer les cellules ainsi trouvées sans devoir supprimer toute la ligne.
Merci d'avance.
Merci encore Pijaku. encore une fois ton code fonctionne mais malheureusement une fois les cellules supprimé, c'est ma premiere userform qui bug vu que le code (a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row) qui jaunit vu que la valeur qui servait de référent n'existe plus. Le bug existe également si je l'unload à l'ouverture de la seconde userform...
As-tu une idée ?
As-tu une idée ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 janv. 2010 à 11:53
11 janv. 2010 à 11:53
On en revient à ma question du post 5 : Sinon comment complètes tu ta combobox?
Je ne comprends pas non plus, pourquoi tu ne souhaites pas supprimer la ligne entière? En gestion de base de données, soit tu remplaces, soit tu supprimes toute une ligne, mais laisser des cellules vides n'est absolument pas bon pour une bdd...
Je ne comprends pas non plus, pourquoi tu ne souhaites pas supprimer la ligne entière? En gestion de base de données, soit tu remplaces, soit tu supprimes toute une ligne, mais laisser des cellules vides n'est absolument pas bon pour une bdd...
Ma combobox, reprend la première colonne de ma feuille qui est une des caracteristiques des objets listés.
En fait je souhaitais, ne pas supprimer la ligne en entier pour ne pas supprimer des boutons et des statistiques que j'ai placé à droite du tableau... si cela pose un problème, je les placerais dans une autre feuille, je n'ai pas encore l'esprit VBA.. et donc pas encore les réflexes utiles :)
Merci
En fait je souhaitais, ne pas supprimer la ligne en entier pour ne pas supprimer des boutons et des statistiques que j'ai placé à droite du tableau... si cela pose un problème, je les placerais dans une autre feuille, je n'ai pas encore l'esprit VBA.. et donc pas encore les réflexes utiles :)
Merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 janv. 2010 à 11:59
11 janv. 2010 à 11:59
effectivement, ta feuille contenant les données ne doit contenir... que les données.
Si tu supprimes des cellules, tu dois avoir des vides dans ta combo?
Si tu supprimes des cellules, tu dois avoir des vides dans ta combo?
En fait ne sachant pas comment programmer une combo pour contenir uniquement les cellules pleines d'une colonne, je l'ai programmé afin qu'elle reprenne toutes les cellules de la colonne A. Du coup les cellules qui disparaissent ne se voient pas.
Je vais donc faire une page d'accueil avec les boutons etc.. ainsi je pourrai supprimer toute la ligne. Peux tu me donner la formule pour supprimer toute une ligne ?
Je vais donc faire une page d'accueil avec les boutons etc.. ainsi je pourrai supprimer toute la ligne. Peux tu me donner la formule pour supprimer toute une ligne ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 janv. 2010 à 13:17
11 janv. 2010 à 13:17
Tout simplement, adapté à ton cas :
a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row Rows(a).Delete
Merci beaucoup. Cependant, une fois la ligne supprimé, il y a tout de même un message d'erreur surlignant en jaune :
a = Feuil2.Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
du premier userform...
Erreur 1004
a = Feuil2.Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
du premier userform...
Erreur 1004
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 janv. 2010 à 16:24
11 janv. 2010 à 16:24
oui puisque tu cherches à nouveau (je ne sais pas pourquoi d'ailleurs) la valeur "cherche" que tu viens de supprimer...
En fait j'ai programmé, que la recherche se lance à chaque changement dans la combobox1. (Private Sub ComboBox1_Change()). L'étrange, c'est que la recherche se lance alors que mon userform contenant la combobox est fermé... je pensais que ca règlerai le problème mais apparament non ...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
12 janv. 2010 à 11:26
12 janv. 2010 à 11:26
salut,
tu l'as fermé comment? si tu n'as fait que :
Essaie :
Le mieux serait tout de même que tu places tout ton code ici et que l'on regarde pourquoi cela ne fonctionne pas. J'aurais un peu de temps demain si tu veux...
tu l'as fermé comment? si tu n'as fait que :
UserForm1.Hideça ne suffit pas.
Essaie :
Unload UserForm1
Le mieux serait tout de même que tu places tout ton code ici et que l'on regarde pourquoi cela ne fonctionne pas. J'aurais un peu de temps demain si tu veux...