Rendre variable la feuille dans un code
Bonjour à tous,
Précédemment, j'ai reçu de l'aide sur un fichier. il me manque une petite modification pour que celui-ci soit complet. Le code que je joins, sert à modifier une ligne en sélectionnant une valeur dans une combobox qui va elle-même afficher des valeurs correspondante dans des textbox.
Actuellement, le code est lié à une feuille fixe. J'aimerai que cette dernière soit variable ( j'avais pensé à ActiveSheet, mais sans succès).
Dim lig As Integer
Private Sub ComboBox1_Change()
Dim cCTRL As Control
Dim i As Byte, col As Byte
lig = Feuil1.Range("D:D").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole).Row
col = 5
For i = 1 To 22
If i = 1 Or i = 2 Or i = 3 Or i = 8 Or i = 9 Or i > 10 Then
Me.Controls("Textbox" & i) = Feuil1.Cells(lig, col).Value
col = col + 1
End If
Next i
col = 8
For i = 2 To 5
Me.Controls("Combobox" & i) = Feuil1.Cells(lig, col).Value
col = col + 1
Next i
Me.ComboBox6 = Feuil1.Cells(lig, "N").Value
End Sub
Private Sub CommandButton1_Click() 'modifier
Dim i As Byte
col = 5
With Feuil1
.Unprotect "MGF"
For i = 1 To 22
If i = 1 Or i = 2 Or i = 3 Or i = 8 Or i = 9 Or i > 10 Then
.Cells(lig, col) = Me.Controls("Textbox" & i).Value
col = col + 1
End If
Next i
Feuil1.Cells(lig, "H").Value = Me.ComboBox2.Value
Feuil1.Cells(lig, "i").Value = Me.ComboBox3.Value
Feuil1.Cells(lig, "J").Value = Me.ComboBox4.Value
Feuil1.Cells(lig, "K").Value = Me.ComboBox5.Value
Feuil1.Cells(lig, "N").Value = Me.ComboBox6.Value
.Protect "MGF"
End With
Unload Me
End Sub
Private Sub UserForm_Initialize()
With Sheets("Bloc_Porte")
ComboBox1.List = .Range("D6:D" & .Range("D31").End(xlUp).Row).Value
End With
With Sheets("Donnees")
ComboBox2.List = Range("Portes_Type").Value
ComboBox3.List = Range("Finition").Value
ComboBox4.List = Range("Section_Huisserie").Value
ComboBox5.List = Range("Epaisseur_cloison").Value
ComboBox6.List = Range("sens_ouverture").Value
End With
End Sub
En cas de besoin, je peut transmettre éventuellement le fichier complet.
Merci d'avance et bonne journée ;)
Bonjour,
tu as 3 références différentes à des feuilles dans ton fichier, feuil1, sheets("bloc_porte") et implicitement la feuille active (instruction Range, cells, etc ... qui ne sont pas précédées du nom de la feuille.)
Quelle feuille veux-tu rendre variable et à quelle feuille se rapportent les instructions range non qualifiées(=sans indication de la feuille) dans la procédure userform_initialize)
Edit : Je me suis fourvoyé dans la lecture de ton code. je reprends tu fais références à 3 feuilles feuil1, bloc_porte et données (il manque cependant le point devant toutes les instructions range qui s'y rapportent). Mais ma question reste, quelle feuille veux-tu rendre variable ?
Edit bis: Hello Ric.
Bonjour, Merci de vous pencher sur ma question,
Je suis pas sur de bien comprendre mais je dirais que la feuille que j'aimerai rendre variable est celle dans laquelle la combobox 1 prend sa source soit ("Bloc_porte").
D'après ton message, j'ai changé ("bloc_porte") présent dans l'initialize par ActiveSheet, la combobox 1 prend donc bien sa source dans la feuille active mais une erreur se génère 😒.
Je joins le fichier avec l'initialize modifié ... Merci ! ;)
Si besoin, le mot de passe des feuille est : MGF
Bonjour à tous,
Je travaillais justement sur cela ...
J'ai ajouté l'identification de la feuille sur le formulaire ...
Un essai ...
ric
Edit : Hello H2so4 ...
Bonjour ric,
C'est exactement cela ! Avec un rappel de la feuille active dans l'UserForm, très bonne idée ! ;)
Merci beaucoup et bonne journée à tous ;)