Utilisation de userform

Résolu
Signaler
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012
-
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012
-
Bonjour,

J'ai un petit souci. ci dessous un prog succinct qui l'explicite ==> macro1
J'ai créé un formulaire avec un bouton appelé "BUREAU"

Au lancement du prog macro1, je souhaiterais que le MSGBOX me renvoie la valeur "Bonjour"... mais il ne me renvoie rien. Comment faire pour récupèrer cette valeur dans mon programme macro1...?

Merci de votre aide

Sub macro1()
UserForm1.Show
MsgBox x
End Sub

Dans le formulaire userform1, j'ai mis ce bout de code:

Private Sub BUREAU_Click()
x = "bonjour"
UserForm1.Hide
End Sub

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Non, cnt, la valeur du 'x' est stockée dans la UserForm.

Méthode d'appel des UserForm :
-1- Dans ta Userform (UF), tu déclares une variable dans la partie Déclarations :
   Public maVariable As String
-2- Dans ta UF, au moment de la fermeture (le Hide), tu renseignes la valeur de x
   maVariable = "Bonjour Codes-Sources"
-3- Ouverture de la UF depuis ta macro
   Dim maForme As UserForm1
   Set maForme = New UserForm1
   Load maForme   ' Charge en mémoire
   maForme.maVariable = "Valeur initiale au lancement"
   maForme.Show vbModal   ' Affiche la forme et attend (modal)
   ' Ici, la UF vient d'être mise en Hide : On contnue
   ' Affiche la valeur de la variable
   MsgBox maForme.maVariable
   ' Et décharge complètement la UF
   Unload maForme

PS : Le VB de Excel (que l'on devine puisque tu ne le dis pas) est du VBA, pas du .Net --> Catégorie de la question modifiée

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
1 avril 2012

Merci Jack,

Compris mon erreur, il ne manquait que la déclaration Public :
Public x As String
dans mon message initial..

@+
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Bonjour [../auteur/NONOSS56/1328136.aspx nonoss56]
Cela marchera mieux ainsi:

Sub macro1()
   x = "bonjour"
   MsgBox x
   UserForm1.Show
End Sub

Private Sub BUREAU_Click()
   UserForm1.Hide
End Sub

Salut
CNTJC