A voir également:
- Recopie de données sélectionnées via un combo
- Communication impossible via ssl ps4 ✓ - Forum Google Chrome
- Exemple base de données access à télécharger gratuit - Forum Access
- Modèle conceptuel de données - Astuces et Solutions
- Erreur de connexion SSL ✓ - Forum Google Chrome
- Extraire des données d'un tableau excel vers un autre tableau ✓ - Forum Excel
3 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 197
29 janv. 2010 à 20:21
29 janv. 2010 à 20:21
Bonjour,
Dans l'évènement Click() du bouton :
Dans un module (ici le Module1) :
;o)
Dans l'évènement Click() du bouton :
Private Sub CommandButton1_Click()
If ComboBox1.Text = "" Then Exit Sub
Call Module1.SearchItem(ComboBox1.Text)
End Sub
Dans un module (ici le Module1) :
Public Sub SearchItem(ByVal str As String)
Dim cl
Dim Lig As Integer
For Each cl In Worksheets(2).Range("A3:A300")
If cl.Value = str Then
Lig = cl.Row
Worksheets(2).Range("A" & Lig & ":G" & Lig).Copy Worksheets(3).Range("A2:G2")
Exit Sub
End If
Next cl
End Sub
;o)
tompols
Messages postés
1219
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
460
29 janv. 2010 à 20:22
29 janv. 2010 à 20:22
Salut,
tu peux utiliser la propriété listindex du combobox qui renvoie la position de l'élément sélectionné dans ta liste (attention, commence à 0). Ds ton cas, pour récuperer le numéro de ligne sur ta feuil2, il ta faudra faire combobox.listindex + 3....
tu peux utiliser la propriété listindex du combobox qui renvoie la position de l'élément sélectionné dans ta liste (attention, commence à 0). Ds ton cas, pour récuperer le numéro de ligne sur ta feuil2, il ta faudra faire combobox.listindex + 3....
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 197
30 janv. 2010 à 01:25
30 janv. 2010 à 01:25
il faut faire comme ça:
Voilà
;o)
Public Sub SearchItem(ByVal str As String)
Dim cl
Dim Lig As Integer
Dim DerniereLigne As Long
For Each cl In Worksheets(2).Range("A3:A300")
If cl.Value = str Then
Lig = cl.Row
DerniereLigne = Worksheets(3).Range("A3").End(xlDown).Row
DerniereLigne = DerniereLigne + 1
Worksheets(2).Range("A" & Lig & ":G" & Lig).Copy Worksheets(3).Range("A" & derniereLigne & ":G" & DerniereLigne)
Exit Sub
End If
Next cl
End Sub
Voilà
;o)
29 janv. 2010 à 21:21
Ce code fonctionne à merveille. Il est rassurant de pouvoir s'appuyer sur votre compétence.
Juste un dernier petit souci à régler :
la recopie des données s'effectue sur la même plage A2:G2 du tableau
Je souhaiterai que les données s'inscrivent au fur et à mesure sur la dernière ligne vide du tableau
Amicalement votre