Nom feuille variable publique

Bonjour,

Je suis face à un problème d'objet...

Dans le code suivant, je suis obligé de mettre la ligne en commentaire dans toutes les parties de l'USF..

Set cmds = ThisWorkbook.Sheets("Commandes")

Je n'arrive pas à le déclarer en public.

Avez vous une solution svp ?

MERCI

Private Sub quit_Click()
    Unload New_cmd
    'Set cmds = ThisWorkbook.Sheets("Commandes") j'aimerais mettre cette ligne en 'public'.. 
    MsgBox cmds.Name
    cmds.Range("A2") = Typ_art
End Sub

Private Sub Typ_art_Click()

End Sub

Private Sub UserForm_Initialize()

    Set entr = ThisWorkbook.Sheets("Entrée")
    Set cmds = ThisWorkbook.Sheets("Commandes")

    lr_typ_art = entr.Range("q" & entr.Cells.Rows.Count).End(xlUp).Row

    New_cmd.Typ_art.List = entr.Range("q2:q" & lr_typ_art).Value
    New_cmd.Typ_art.MultiSelect = fmMultiSelectMulti

End Sub

Bonjour,

Pour décolarer cmds publique >> il faut placer la variable publique dans le haut d'un module.

Public cmds as Worksheet

Voir >> Descends à Public, instruction

https://docs.microsoft.com/fr-fr/office/vba/language/concepts/getting-started/declaring-variables

ric

En effet,

sur un classeur de test le code fonctionne.

Public cmds As Worksheet

Private Sub CommandButton1_Click()
    cmds.Range("A1") = UserForm1.TextBox1.Value
End Sub

Private Sub UserForm_Initialize()
    Set cmds = ThisWorkbook.Sheets("Commandes")
End Sub

Je vais chercher mon erreur.

Merci ric

Bonjour,

Public cmds As Worksheet doit être dans un module > pas dans un userform.

ric

Ah bon ?

Je l'ai fait dans l'USF et ça fonctionne

Bonjour,

Je l'ai fait dans l'USF et ça fonctionne

Alors c'est qu'il n'a pas besoin d'être public : Dim suffirait.

A+

Bonjour,

Excuse-moi de mon manque de précision.

Si tu as besoin que le contenu de la variable ne soit accessible que dans les différentes macros du Userform > il suffit de : Dim cmds As Worksheet au haut du Userform.

Mais si tu veux que le contenu de la variable soit accessible de tous les modules et de tous les Userforms, il faut que : Public cmds As Worksheet soit au début d'un module.

ric

Merci pour vos réponses

Rechercher des sujets similaires à "nom feuille variable publique"