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 ;)

Rechercher des sujets similaires à "rendre variable feuille code"