sourcier08
XLDnaute Occasionnel
Bonjour à tous,
Je suis confronté à un problème majeur.
Je suis occupé de préparer un fichier pour un inventaire perso et j'ai un soucis concernant les données via un userform.
Je me retrouve avec 16 variables nommées "statx" (ou x est un chiffre), 12 combobox, liés à des checkbox et textbox.
L'idée est bonne et je vois mal comment faire autrement mais le fait de devoir recopier et modifier 11 fois un bout de code me rebute un peu.
J'ai eu beau regarder sur la toile les modules de classes, je n'y comprends rien.
Voici le bout de code du départ et le suivant (que je vais devoir recopier et modifier "x" fois en fonction de mes besoin)
La différence entre les deux codes est :
stat1 devient stat2
combobox6 devient combobox7
checkbox3 devient checkbox5
checkbox4 devient checkbox6
textbox6 devient textbox8
textbox7 devient textbox9
Sachant que j'ai à mémoriser les données statx au final pour les utiliser ailleurs.
Comment pourrait-on faire ça via un module de classe (pour pouvoir répéter ça 11 fois)?
Merci d'avance pour l'aide
Je suis confronté à un problème majeur.
Je suis occupé de préparer un fichier pour un inventaire perso et j'ai un soucis concernant les données via un userform.
Je me retrouve avec 16 variables nommées "statx" (ou x est un chiffre), 12 combobox, liés à des checkbox et textbox.
L'idée est bonne et je vois mal comment faire autrement mais le fait de devoir recopier et modifier 11 fois un bout de code me rebute un peu.
J'ai eu beau regarder sur la toile les modules de classes, je n'y comprends rien.
Voici le bout de code du départ et le suivant (que je vais devoir recopier et modifier "x" fois en fonction de mes besoin)
Code:
Set plage = Sheets("choix").Range("Liste5")
For Each cel In plage
If cel = ComboBox6.Value Then
b = cel.Offset(0, -1).Value
End If
Next cel
If CheckBox3.Value = True And CheckBox4.Value = False Then
c = "+"
ElseIf CheckBox3.Value = False And CheckBox4.Value = True Then
c = "-"
ElseIf CheckBox3.Value = False And CheckBox4.Value = False Then
c = "+"
End If
If b = "0" Then
stat1 = ComboBox6.Value
ElseIf b = "1" Then
stat1 = ComboBox6.Value & " de " & TextBox6.Value & "%"
ElseIf b = "2" Then
stat1 = ComboBox6.Value & " toutes les " & TextBox6.Value & " secondes"
ElseIf b = "3" Then
stat1 = c & TextBox6.Value & "% " & ComboBox6.Value
ElseIf b = "4" Then
stat1 = ComboBox6.Value & " " & TextBox6.Value & "-" & TextBox7.Value
ElseIf b = "5" Then
stat1 = ComboBox6.Value & " " & c & TextBox6.Value & "%"
ElseIf b = "" Then
stat1 = c & TextBox6.Value & " " & ComboBox6.Value
End If
'********************************************
Set plage = Sheets("choix").Range("Liste5")
For Each cel In plage
If cel = ComboBox7.Value Then
b = cel.Offset(0, -1).Value
End If
Next cel
If CheckBox5.Value = True And CheckBox6.Value = False Then
c = "+"
ElseIf CheckBox5.Value = False And CheckBox6.Value = True Then
c = "-"
ElseIf CheckBox5.Value = False And CheckBox6.Value = False Then
c = "+"
End If
If b = "0" Then
stat2 = ComboBox7.Value
ElseIf b = "1" Then
stat2 = ComboBox7.Value & " de " & TextBox8.Value & "%"
ElseIf b = "2" Then
stat2 = ComboBox7.Value & " toutes les " & TextBox8.Value & " secondes"
ElseIf b = "3" Then
If CheckBox5.Value = True And CheckBox6.Value = False Then
c = "+"
ElseIf CheckBox5.Value = False And CheckBox6.Value = True Then
c = "-"
ElseIf CheckBox5.Value = False And CheckBox6.Value = False Then
c = "+"
End If
stat2 = c & TextBox8.Value & "% " & ComboBox7.Value
ElseIf b = "4" Then
stat2 = ComboBox7.Value & " " & TextBox8.Value & "-" & TextBox9.Value
ElseIf b = "5" Then
stat2 = ComboBox7.Value & " " & c & TextBox8.Value & "%"
ElseIf b = "" Then
stat2 = c & TextBox8.Value & " " & ComboBox7.Value
End If
' *****************************************************************
stat1 devient stat2
combobox6 devient combobox7
checkbox3 devient checkbox5
checkbox4 devient checkbox6
textbox6 devient textbox8
textbox7 devient textbox9
Sachant que j'ai à mémoriser les données statx au final pour les utiliser ailleurs.
Comment pourrait-on faire ça via un module de classe (pour pouvoir répéter ça 11 fois)?
Merci d'avance pour l'aide
Pièces jointes
Dernière édition: