Autre façon d'écrire un code...

Le
Denys
Bonjour à tous,

Dites, y aurait-t-il une meilleure façon d'écrire ce qui suit ?

If ComboBox1 = [BF13].Value And ComboBox2 = [BG13].Value And
ComboBox3 = [BH13].Value Then TextBox3.Text = [BJ13].Value
If ComboBox1 = [BF14].Value And ComboBox2 = [BG14].Value And
ComboBox3 = [BH14].Value Then TextBox3.Text = [BJ14].Value
If ComboBox1 = [BF15].Value And ComboBox2 = [BG15].Value And
ComboBox3 = [BH15].Value Then TextBox3.Text = [BJ15].Value
If ComboBox1 = [BF16].Value And ComboBox2 = [BG16].Value And
ComboBox3 = [BH16].Value Then TextBox3.Text = [BJ16].Value
If ComboBox1 = [BF17].Value And ComboBox2 = [BG17].Value And
ComboBox3 = [BH17].Value Then TextBox3.Text = [BJ17].Value
If ComboBox1 = [BF18].Value And ComboBox2 = [BG18].Value And
ComboBox3 = [BH18].Value Then TextBox3.Text = [BJ18].Value
If ComboBox1 = [BF19].Value And ComboBox2 = [BG19].Value And
ComboBox3 = [BH19].Value Then TextBox3.Text = [BJ19].Value
If ComboBox1 = [BF20].Value And ComboBox2 = [BG20].Value And
ComboBox3 = [BH20].Value Then TextBox3.Text = [BJ20].Value

et ça continue jusqu'à la ligne 56.à date

Merci pour votre temps

Denys
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23553871
Bonjour,

Tu pourrais essayer de cette manière :

Affecte le type approprié aux variables X, Y, Z
et adapte le nom des objets selon ceux de ton application
La procédure suppose qu'il n'y a qu'une combinaison gagnante!

'------------------------------------
Sub test()
Dim Rg As Range, Trouve As Range, Sh As Worksheet
Dim X As Integer, Y As String, Z As String

Set Sh = ThisWorkbook.Worksheets("Feuil1")

With Sh
X = .ComboBox1.value
Y = .ComboBox2.value
Z = .ComboBox3.value
Set Rg = .Range("BF13:BF56")

With Rg
Set Trouve = .Find(What:=X, LookIn:=xlValues, lookAt:=xlWhole)
If Not Trouve Is Nothing Then
adr = Trouve.Address
Do
If Trouve.Offset(, 1) = Y And Trouve.Offset(, 2) = Z Then
Sh.TextBox3.Text = Trouve.Offset(, 4).Value
Exit Sub
End If
Set Trouve = .FindNext(Trouve)
Loop Until Trouve.Address = adr
End If
End With
End With
End Sub



MichD
--------------------------------------------
"Denys" a écrit dans le message de groupe de discussion :


Bonjour à tous,

Dites, y aurait-t-il une meilleure façon d'écrire ce qui suit ?

If ComboBox1 = [BF13].Value And ComboBox2 = [BG13].Value And
ComboBox3 = [BH13].Value Then TextBox3.Text = [BJ13].Value
If ComboBox1 = [BF14].Value And ComboBox2 = [BG14].Value And
ComboBox3 = [BH14].Value Then TextBox3.Text = [BJ14].Value
If ComboBox1 = [BF15].Value And ComboBox2 = [BG15].Value And
ComboBox3 = [BH15].Value Then TextBox3.Text = [BJ15].Value
If ComboBox1 = [BF16].Value And ComboBox2 = [BG16].Value And
ComboBox3 = [BH16].Value Then TextBox3.Text = [BJ16].Value
If ComboBox1 = [BF17].Value And ComboBox2 = [BG17].Value And
ComboBox3 = [BH17].Value Then TextBox3.Text = [BJ17].Value
If ComboBox1 = [BF18].Value And ComboBox2 = [BG18].Value And
ComboBox3 = [BH18].Value Then TextBox3.Text = [BJ18].Value
If ComboBox1 = [BF19].Value And ComboBox2 = [BG19].Value And
ComboBox3 = [BH19].Value Then TextBox3.Text = [BJ19].Value
If ComboBox1 = [BF20].Value And ComboBox2 = [BG20].Value And
ComboBox3 = [BH20].Value Then TextBox3.Text = [BJ20].Value

et ça continue jusqu'à la ligne 56....à date...

Merci pour votre temps

Denys
Denys
Le #23553911
Bonjour Denis,

Merci beaucoup pour ton aide, c'est très apprécié...

Bonne fin de journée

Denys
Publicité
Poster une réponse
Anonyme