VBA recherche avec textbox et combobox
Bonjour
Je suis un debutant sur vba et bloque sur un gros probleme
J'ai fais un formulaire et je voudrais faire une recherche dans des tableaux avec une combobox et une textbox
Ci dessous mon code de recherche
Private Sub CommandButton13_Click()
Dim Ws As Worksheet, m As String
Dim ListObj As ListObject
Dim ligne As Integer
Dim columns As Integer
Set Ws = Worksheets("VENTES")
If TextBox1 = "" Or ComboBox8 = "" Or TextBox1 = "jj/mm" Then
MsgBox ("toutes les informations ne sont pas remplies")
Else
m = Trim(Right(TextBox1, 4))
If m = "févr" Then
m = "fevr"
ElseIf m = "août" Then
m = "aout"
ElseIf m = "déc" Then
m = "dec"
End If
m = UCase(m)
For Each ListObj In Ws.ListObjects 'récupère le nom de ta feuille
If ListObj.Name Like m & "*" Then
Mafeuille = ListObj.Name
MsgBox Mafeuille
Exit For
End If
Next ListObj
If Mafeuille = "JANVIER" Then
Mafeuille = Sheets("VENTES").ListObjects("JANVIER")
ligne = ComboBox8.ListIndex + 2 And TextBox2.Text JE BLOQUE ICI
TextBox1 = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 1)
TextBox2.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 2)
ComboBox1 = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 4)
TextBox66 = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 5)
ComboBox2 = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 6)
TextBox4.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 7)
TextBox6.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 8)
TextBox8.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 9)
TextBox7.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 10)
TextBox9.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 11)
TextBox10.Value = Sheets("VENTES").ListObjects("JANVIER").Range.Cells(ligne, 12)
TextBox11.Value = Sheets("VENTES").ListObjects("JANVIER").Range(ligne, 13)
TextBox5.Value = Sheets("VENTES").ListObjects("JANVIER").Range(ligne, 18)
Else
Mafeuille = Sheets("VENTES").ListObjects(Mafeuille)
ligne = ComboBox8.ListIndex - 1
TextBox1 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 1)
TextBox2.Value = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 2)
ComboBox1 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 4)
TextBox66 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 5)
ComboBox2 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 6)
TextBox4 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 7)
TextBox6 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 8)
TextBox8 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 9)
TextBox7 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 10)
TextBox9 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 11)
TextBox10 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 12)
TextBox11 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 13)
TextBox5 = Sheets("VENTES").ListObjects(Mafeuille).Range(ligne, 18)
End If
End If
End Sub
Si quelqu'un peut m'aider
Merci d'avance
Bonjour,
Le listindex de la combox +2 te renvoi le numéro de ligne dans la feuille excel à condition que la liste qui sert de sélection soit bien une liste qui appartiend
à la feuille dans laquelle on recherche ?
Je ne vois pas du tout à quoi te sert ta textebox la dedant ? surtout si elle contiend une Date ? que vient faire une date pour trouver un numéro de ligne ?
Bonjour
En faite j ai des données enregistrées dans un tableau et je veux faire une recherche avec la combobox ( nom) et avec une réf client qui en texte car il peut avoir 2 fois le même nom mais pas les mêmes données
Bonjour
En faite j ai des données enregistrées dans un tableau et je veux faire une recherche avec la combobox ( nom) et avec une réf client qui en texte car il peut avoir 2 fois le même nom mais pas les mêmes données
Le combobox et textbox sont prévu pour recevoir un seul résultat. votre base de données aurait du en tenir compte et vous auriez penser à la première colonne de votre base de données pour attribuer un numéro unique d'enregistrement ( exemple : numéro de facture , numéro de commande ou juste numéro de saisie .... )
C'est avec l'info de cette première colonne que vous pourrez rappeler et modifier vos enregistrement.