Variable publique et Userform

Bonjour à tous,

Bon voilà je pense que j'ai problème très con et très facile à résoudre mais voilà je débute en VBA et tout ce que je fais je le pique sur internet mais là je n'ai rien trouvé de concluant pour mon cas...

J'ai une macro principale dans un de mes modules dans laquelle je déclare des variables publiques. J'appelle un UserForm et j'affecte les champs remplis à mes différentes variables déclarées en publique. Jusque là tout marche, même dans mon tableau virtuel, je récupère bien les bonnes données des cases cochées. Puis je quitte mon Userform et mes variables sont vides dans ma macro principale...

Help et merci à ceux qui prendront le temps =) !

La macro principale :

Option Explicit
Public UTILISATEUR As String
Public CHARGE_AFF() As Variant
Public CLIENT As String

Sub MACRO_PRINCIPALE()

    INFO_INI.Show                                   'APPEL DE L'USERFORM "INFO_INI"
    MsgBox "UTILISATEUR = " & UTILISATEUR           'C'EST TOUT VIDE Oo

End Sub

Le code de l'Userform :

Private Sub UserForm_Initialize()

    With INFO_INI.CHARGE_AFF

        .AddItem "Mr blabla"
        .AddItem "Mr bleble"
        .AddItem "Mr blibli"
        .AddItem "Mr bloblo"
        .AddItem "Mr blublu"
        .AddItem "Mr blybly"

    End With

    With INFO_INI.CLIENT

        .AddItem "MICHELIN"
        .AddItem "AUTRE"

    End With

End Sub

Il ressemble à ça :

image

Et le code du bouton "OK" de l'Userform :

Public Sub OK_Click()

    UTILISATEUR = INFO_INI.UTILISATEUR.Value
    MsgBox "UTILISATEUR = " & UTILISATEUR      'LA J'AI BIEN LA BONNE VALEUR
    ReDim CHARGE_AFF(0)
    For j = 0 To INFO_INI.CHARGE_AFF.ListCount - 1
        If INFO_INI.CHARGE_AFF.Selected(j) = True Then
            CHARGE_AFF(UBound(CHARGE_AFF)) = INFO_INI.CHARGE_AFF.List(j)
            ReDim Preserve CHARGE_AFF(UBound(CHARGE_AFF) + 1)
        End If
    Next j
    ReDim Preserve CHARGE_AFF(UBound(CHARGE_AFF) - 1)
    CLIENT = INFO_INI.CLIENT.Value
    Unload INFO_INI

End Sub

Bonjour,

Pourquoi donnez-vous deux fonctions à CHARGE_AFF ?
D'un coté vous déclarez une variable type tableau et de l'autre ce nom est utilisé dans votre userform pour la Listbox

Bonjour Dan,

Oui effectivement j'ai donné le même nom à ma variable et à ma Listbox de mon Userform. Je me suis dit que ça ne poserai pas de problèmes et que ça serait plus lisible pour moi : la variable CHARGE_AFF est définie par la Listbox du même nom. Mais effectivement avec le recul ce n'est peut être pas le meilleur des choix ^^ !

Oui à éviter comme d'ailleurs prendre des noms de variables qui sont des noms de fonctions définis dans excel (exemple : cellule, alea, ....)

Si ok et terminé ->

Crdlt

Bonjour à tous !

Je n'avais pas eu le temps de me remettre sur le sujet mais c'est chose faite et ça fonctionne !

Merci du coup de main

Rechercher des sujets similaires à "variable publique userform"