Recherche de valeurs a partir dans userform
toto
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Bonjour,
J'ai un userform dans lequel j'ai des texboxs vides. J'aimerai que lorsque je clique sur mon bouton de commande 1, une recherche soit effectuée pour trouver dans la colonne B de mon tableau Excel les cellules dans lesquelles est inscrit : « ok ». Pour toutes ces cellules, il faudrait que les valeurs de la colonne C soient reportées dans les textbox de mon userform.
Je suis un peu perdu...
Merci pour votre aide
Jérémie
Bonjour,
J'ai un userform dans lequel j'ai des texboxs vides. J'aimerai que lorsque je clique sur mon bouton de commande 1, une recherche soit effectuée pour trouver dans la colonne B de mon tableau Excel les cellules dans lesquelles est inscrit : « ok ». Pour toutes ces cellules, il faudrait que les valeurs de la colonne C soient reportées dans les textbox de mon userform.
Je suis un peu perdu...
Merci pour votre aide
Jérémie
A voir également:
- Recherche de valeurs a partir dans userform
- Comment faire une recherche à partir d'une photo - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. - Guide
- Combien y a-t-il de bateaux dans la zone de 475 pixels de large et 1000 pixels de haut à partir du coin supérieur gauche de cette image ? - Forum Photoshop
3 réponses
Bonjour,
Je suppose que tu n'as pas changé la propriété "Name" de tes Textbox, qu'ils ont tous un "N°" qui se "suivent" et que le 1er est nommé TextBox1 (A ADAPTER DANS LE CODE) :
TextBox1, TextBox2, textBox3 etc...
Avec une titite boucle par exemple :
Je suppose que tu n'as pas changé la propriété "Name" de tes Textbox, qu'ils ont tous un "N°" qui se "suivent" et que le 1er est nommé TextBox1 (A ADAPTER DANS LE CODE) :
TextBox1, TextBox2, textBox3 etc...
Avec une titite boucle par exemple :
Dim Lign As Long, DrLig As Long
Dim Cpt As Byte
Cpt = 1 'A ADAPTER : 1 serait le "n°" de ton 1er TextBox
With Sheets("Feuil1") 'A ADAPTER nom de ta feuille
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 1 To DrLig
If UCase(.Cells(Lign, 2)) = "OK" Then
Me.Controls("TextBox" & Cpt).Value = .Cells(Lign, 3)
Cpt = Cpt + 1
End If
Next Lign
End With
Super cela marche pour la prmeiere ligne.mais j'ai apporté une modif pke j'ai trois textbox pour chaque ligne, (comme dans le code ci dessous).
Du coup mon texbox box 4 sera la prochaine valeur colonne B, la textbox5:prochaine valeur C , etc qd on trouvera une ligne avec :"OK".
J'arrive pas a adapter.
Voici mon code pour le moment:
Merci pôur l'aide
Private Sub CommandButton3_Click()
Dim Lign As Long, DrLig As Long
With Sheets("SECO")
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 1 To DrLig
If UCase(.Cells(Lign, 6)) = "OK" Then
Me.Controls("TextBox1").Value = .Cells(Lign, 2)
Me.Controls("TextBox2").Value = .Cells(Lign, 3)
Me.Controls("TextBox3").Value = .Cells(Lign, 4)
End If
Next Lign
End With
End Sub
Du coup mon texbox box 4 sera la prochaine valeur colonne B, la textbox5:prochaine valeur C , etc qd on trouvera une ligne avec :"OK".
J'arrive pas a adapter.
Voici mon code pour le moment:
Merci pôur l'aide
Private Sub CommandButton3_Click()
Dim Lign As Long, DrLig As Long
With Sheets("SECO")
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 1 To DrLig
If UCase(.Cells(Lign, 6)) = "OK" Then
Me.Controls("TextBox1").Value = .Cells(Lign, 2)
Me.Controls("TextBox2").Value = .Cells(Lign, 3)
Me.Controls("TextBox3").Value = .Cells(Lign, 4)
End If
Next Lign
End With
End Sub
j'ai apporté une modif pke j'ai trois textbox pour chaque ligne Et tu comptais le dire quand???
SCROGNEUGNEU!
SCROGNEUGNEU!
Private Sub CommandButton3_Click()
Dim Lign As Long, DrLig As Long
Dim Cpt As Integer
Cpt = 1
With Sheets("SECO")
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 1 To DrLig
If UCase(.Cells(Lign, 6)) = "OK" Then
Me.Controls("TextBox" & Cpt).Value = .Cells(Lign, 2)
Cpt = Cpt + 1
Me.Controls("TextBox" & Cpt).Value = .Cells(Lign, 3)
Cpt = Cpt + 1
Me.Controls("TextBox" & Cpt).Value = .Cells(Lign, 4)
Cpt = Cpt + 1
End If
Next Lign
End With
End Sub
Parfait cela marche très bien.
Mais est-il possible que lorsque j'ai une valeur dans les texbox, si j'ai un combobox pour chaque ligne de mon userform et que je choisi entre la valeur A, B ou C, celle ci soit enregistrée dans le tableau excel dans la colonne E de la ligne correspondante?
Merci pour ton aide
Mais est-il possible que lorsque j'ai une valeur dans les texbox, si j'ai un combobox pour chaque ligne de mon userform et que je choisi entre la valeur A, B ou C, celle ci soit enregistrée dans le tableau excel dans la colonne E de la ligne correspondante?
Merci pour ton aide
Oui.
A ADAPTER : les "numéros" des textbox et de la combobox ainsi que les cellules...
A ADAPTER : les "numéros" des textbox et de la combobox ainsi que les cellules...
'Si Les textbox sont remplis
If TextBox1 <> "" And textBox2 <> "" And textBox3 <> ""
'boucle sur toutes les lignes pour retrouver la bonne ligne :
With Sheets("SECO")
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 1 To DrLig
'si on trouve sur la même ligne la valeur des textbox 1, 2, 3 dans les col B, C, D
If .Cells(Lign, 2) = TextBox1 Ans .Cells(Lign, 3) = TextBox2 And .Cells(Lign, 4) = TextBox3 Then
'alors en colE on mets la valeur de la combobox
.Cells(Lign, 5) = Combobox1
Exit For
End If
Next
End With
End If
textbox365
textbox369
textbox373
etc jusqu'a 393:
Exemple pour les 2 premieres boucles:
Private Sub CommandButton21_Click()
With Sheets("SECO")
If TextBox365 <> "" And TextBox366 <> "" Then
'boucle sur toutes les lignes pour retrouver la bonne ligne :
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 3 To DrLig
'si on trouve sur la même ligne la valeur des textbox 1, 2 dans les col B, C
If .Cells(Lign, 2) = TextBox365 And .Cells(Lign, 3) = TextBox366 Then
'alors en col F on mets la valeur de la combobox
.Cells(Lign, 6) = ComboBox1.Value
Exit For
End If
Next
End If
If TextBox369 <> "" And TextBox370 <> "" Then
'boucle sur toutes les lignes pour retrouver la bonne ligne :
DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
For Lign = 3 To DrLig
'si on trouve sur la même ligne la valeur des textbox 1, 2 dans les col B, C
If .Cells(Lign, 2) = TextBox369 And .Cells(Lign, 3) = TextBox370 Then
'alors en col F on mets la valeur de la combobox
.Cells(Lign, 6) = ComboBox2.Value
Exit For
End If
Next
End If
End With
Calculate
End Sub
Essaye une boucle comme celle ci :
[Code non testé, c'est pour te donner une piste...]
Private Sub CommandButton21_Click() Dim i As Byte Dim Cpt As Integer Dim Lign As Long, DrLig As Long Cpt = 365 For i = 1 to 8 With Sheets("SECO") If Me.Controls("TextBox" & Cpt) <> "" And Me.Controls("TextBox" & Cpt + 1) <> "" Then DrLig = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row For Lign = 3 To DrLig If .Cells(Lign, 2) = Me.Controls("TextBox" & Cpt) And .Cells(Lign, 3) = Me.Controls("TextBox" & Cpt + 1) Then .Cells(Lign, 6) = Me.Controls("ComboBox" & i).Value Exit For End If Next Lign End If End With Cpt = Cpt + 4 Next i End Sub