Boucle VBA par ligne
Bonjour, je suis débutant en VBA, et j'aurais besoin d'un petit coup de pouce.
J'ai des textboxs à remplir en fonction de la machine séléctionnée dans la combobox.
Chaque ligne dans mon tableau correspond à une machine avec les dates en colonnes des éléments.
Ma question serait :
Est-il possible de réaliser une boucle qui permet de chercher par ligne le repère de la combobox est remplir les textbox en conséquence.
Exemple si machine 1 séléctionné :
Private Sub CommandButton1_Click()
'Si la valeur "Machine 1" dans la liste est séléctionné (en A6) affiché les valeurs dans le tableau dans les textboxs
If ComboBox_rep = Range("A6") Then
DeshyPrinc = Range("B6")
deshyprinc1 = Range("C6")
deshyprinc2 = Range("D6")
EvrPrinc = Range("E6")
evrprinc1 = Range("F6")
evrprinc2 = Range("G6")
CompPrinc = Range("H6")
compprinc1 = Range("I6")
compprinc2 = Range("J6")
VidCompPrinc = Range("K6")
vidcompprinc1 = Range("L6")
vidcompprinc2 = Range("M6")
DeshyAux = Range("N6")
deshyaux1 = Range("O6")
deshyaux2 = Range("P6")
EvrAux = Range("Q6")
evraux1 = Range("R6")
evraux2 = Range("S6")
CompAux = Range("T6")
compaux1 = Range("U6")
compaux2 = Range("V6")
'Si la machine possède un cond. Eau, affiché ces textbox sinon, les cacher.
If Range("AE6") = "Eau" Then
detcondeau = Range("W6")
detcondeau1 = Range("X6")
detcondeau2 = Range("Y6")
Else: DetCondAux.Visible = False
detcondeau1.Visible = False
detcondeau2.Visible = False
Label36.Visible = False
End If
VidCompAux = Range("Z6")
vidcompaux1 = Range("AA6")
vidcompaux2 = Range("AB6")
Commentaire = Range("AC6")
compcourant = Range("AD6")
End If
End SubPour la machine 2 ce serait exactement identique mais il faut remplacé les Range("*6") par ("*7") et ainsi de suite jusqu'à 300..
Merci de votre aide !
Bonjour,
Un petit fichier aurait éré le bienvenu,
Dans une boucle for i= 6 to 300 .......... End If
remplacer les Range("A6") par Range("A" & i) par exemple
Bonjuor,
A tester
Dim Machine As Integer
Private Sub CommandButton1_Click()
'Si la valeur "Machine 1" dans la liste est séléctionné (en A6) affiché les valeurs dans le tableau dans les textboxs
For Machine = 6 To 300
If ComboBox_rep = Range("A" & Machine) Then
DeshyPrinc = Range("B" & Machine)
deshyprinc1 = Range("C" & Machine)
deshyprinc2 = Range("D" & Machine)
EvrPrinc = Range("E" & Machine)
evrprinc1 = Range("F" & Machine)
evrprinc2 = Range("G" & Machine)
CompPrinc = Range("H" & Machine)
compprinc1 = Range("I" & Machine)
compprinc2 = Range("J" & Machine)
VidCompPrinc = Range("K" & Machine)
vidcompprinc1 = Range("L" & Machine)
vidcompprinc2 = Range("M" & Machine)
DeshyAux = Range("N" & Machine)
deshyaux1 = Range("O" & Machine)
deshyaux2 = Range("P" & Machine)
EvrAux = Range("Q" & Machine)
evraux1 = Range("R" & Machine)
evraux2 = Range("S" & Machine)
CompAux = Range("T" & Machine)
compaux1 = Range("U" & Machine)
compaux2 = Range("V" & Machine)
'Si la machine possède un cond. Eau, affiché ces textbox sinon, les cacher.
If Range("AE" & Machine) = "Eau" Then
detcondeau = Range("W" & Machine)
detcondeau1 = Range("X" & Machine)
detcondeau2 = Range("Y" & Machine)
Else: DetCondAux.Visible = False
detcondeau1.Visible = False
detcondeau2.Visible = False
Label36.Visible = False
End If
VidCompAux = Range("Z" & Machine)
vidcompaux1 = Range("AA" & Machine)
vidcompaux2 = Range("AB" & Machine)
Commentaire = Range("AC" & Machine)
compcourant = Range("AD" & Machine)
End If
Next Machine
End SubMerci à vous 2,
j'ai réussi avec la solution de Bernard finalement !
Je rencontre d'autres problèmes maintenant j'essaye de résoudre ça mais sinon je reviendrais vous voir !