Variable déclarée en "Public" qui ne prend pas la valeur espérée

Résolu/Fermé
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 15 juil. 2016 à 10:41
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 15 juil. 2016 à 11:14
Bonjour,

Voici le code original :

Public PARAMETRAGE_OUI As Boolean

Private Sub Workbook_Open()

Dim j As Integer, i As Integer

For i = 1 To ThisWorkbook.Sheets.Count

    Sheets(i).Visible = True

Next i

PARAMETRAGE_OUI = False

With UserForm_Parametrage

    .Show 0
    For i = 10 To 0 Step -1
        Application.Wait Now + TimeValue("00:00:01")
        If i >= 10 Then
            .Timer = "00:" & i
        Else
            .Timer = "00:0" & i
        End If
            .Repaint
    Next i
    
End With
 
Unload UserForm_Parametrage

If PARAMETRAGE_OUI = True Then
    Exit Sub
End If

Application.DisplayAlerts = False

For i = ThisWorkbook.Sheets.Count To 4 Step -1

    Sheets(i).Delete
    
Next i

Application.DisplayAlerts = True

Call Refresh

Call MISE_EN_FORME

Call Creation_PDF

Call EnvoiMail


End Sub


Comme vous pouvez le voir, j'ai déclaré une variable en haut de mon code : Public PARAMETRAGE_OUI As Boolean

En fait, le code du bouton du UserForm est le suivant :

Private Sub CommandButton1_Click()

Dim i As Integer

PARAMETRAGE_OUI = True

Unload Me

End Sub



Et dans mon code, vous verrez la ligne suivante :

If PARAMETRAGE_OUI = True Then
    Exit Sub
End If



Or, le code ne s'arrête pas lorsque l'on clique sur le bouton, pourtant la variable d'ordre publique devrait devenir "True" en cliquant sur le bouton du UserForm non? La valeur de la variable n'est pas conservée ensuite??

Merci d'avance.

Cordialement.

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
15 juil. 2016 à 11:04
Bonjour Kuartz, bonjour le forum,

Les variables publiques doivent être déclarées dans un module standard (Module1 par exemple). Là, tu l'as déclarée dans le composant ThisWorkbook...
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
15 juil. 2016 à 11:14
Bonjour TheauTheme,

Aussi simple que ça... Je pensais qu'on pouvait la déclarer n'importe où...

Merci beaucoup.

Cordialement.
0