Transmettre une variable à un userform

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

siocnarf

XLDnaute Occasionnel
Bonjour,

Je souhaite transmettre un nom de serveur à un userform. Au début de mon programme (avant le premier sub), je déclare la variable comme public.

Code:
Public StrServerName As String

Et je l'initialise.

Code:
StrServerName = Co_strComputer
        'On lance la fenêtre de connexion
        frmlogin.Show

Toutefois, lorsque j'arrive dans mon form celle-ci devient vide... Pourquoi?

Code:
Private Sub txtPassword_Change()


StrPassword = txtPassword.Value

End Sub

Private Sub txtServername_Change()
txtServername.Value = StrServerName
End Sub

Private Sub txtUsername_Change()


StrUsername = txtUsername.Value

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, _
  CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then
    Cancel = True
    MsgBox "SVP, utilisez le bouton!"
  End If
End Sub

Private Sub cmdCancel_Click()
    Canceled = True
    Unload Me
    Hide
End Sub

Private Sub cmdOK_Click()

'En effectuant un clic on vérifie le mot de passe
If Me.txtPassword.Value = "" Then
    MsgBox "Vous devez inscrire un mot de passe valable sur ce serveur!"
    Me.txtPassword.SetFocus
    Exit Sub
End If

If Len(Me.txtUsername.Value) < Len(Me.txtServername.Value) Then
    MsgBox "Vous devez inscrire un Identifiant valide sur ce serveur!"
    Me.txtUsername.SetFocus
    Exit Sub
End If

Canceled = False
Hide

End Sub

Private Sub Image1_Click()

End Sub

Sub UserForm_Initialize()

'On fait apparaître la fenêtre au milieu de l'écran
Me.StartUpPosition = 2

[CODE]txtServername.Value = StrServerName
txtUsername.Value = StrServerName & "\"
End Sub[/CODE]


Merci,
 
Re : Transmettre une variable à un userform

Je m'excuse mais il semble que je me sois mal expliqué.

J'ai créé ma variable globale dans le haut de mon programme et non pas dans mon userform.

Ainsi, dans le haut de mon programme (avant le premier sub), j'ai inscrit:

Code:
Public StrServerName As String

Puis plus loin dans mon code, j'ai inscrit:

Code:
'On donne le nom du serveur à la fenêtre de connexion
StrServerName = Co_strComputer
                
'On lance la fenêtre de connexion
frmlogin.Show
If frmlogin.Canceled = False Then
        
            Err.Clear
            
            'On récupère les données de jour et d'intervalle
            StrUsername = frmlogin.txtUsername
            StrPassword = frmlogin.txtPassword
    
           Set objLocator = CreateObject("WbemScripting.SWbemLocator")
           Set Co_objWMIService = objLocator.ConnectServer _
               (Co_strAdresseIP, "root\cimv2", StrUsername, StrPassword)

Or aussitôt que mon userform démarre, la variable strServerName devient en blanc.

Voici le code de mon userform:

Code:
Public Canceled As Boolean
Private Sub txtPassword_Change()


StrPassword = txtPassword.Value

End Sub

Private Sub txtServername_Change()
txtServername.Value = StrServerName
End Sub

Private Sub txtUsername_Change()


StrUsername = txtUsername.Value

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, _
  CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then
    Cancel = True
    MsgBox "SVP, utilisez le bouton!"
  End If
End Sub

Private Sub cmdCancel_Click()
    Canceled = True
    'Unload Me
    Hide
End Sub

Private Sub cmdOK_Click()

'En effectuant un clic on vérifie le mot de passe
If Me.txtPassword.Value = "" Then
    MsgBox "Vous devez inscrire un mot de passe valable sur ce serveur!"
    Me.txtPassword.SetFocus
    Exit Sub
End If

If Len(Me.txtUsername.Value) < Len(Me.txtServername.Value) Then
    MsgBox "Vous devez inscrire un Identifiant valide sur ce serveur!"
    Me.txtUsername.SetFocus
    Exit Sub
End If

Canceled = False
Hide

End Sub

Private Sub Image1_Click()

End Sub

Sub UserForm_Initialize()

'On fait apparaître la fenêtre au milieu de l'écran
Me.StartUpPosition = 2

[B]txtServername.Value = StrServerName[/B]
txtUsername.Value = StrServerName & "\"

End Sub

Merci,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

S
Réponses
4
Affichages
1 K
V
Réponses
17
Affichages
3 K
VBgalère
V
L
  • Question Question
2
Réponses
18
Affichages
2 K
E
Réponses
2
Affichages
911
Edoliie
E
Retour