Utilisation de userform

Résolu
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012 - 22 févr. 2009 à 13:40
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012 - 22 févr. 2009 à 23:14
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

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
22 févr. 2009 à 16:20
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)
3
nonoss56 Messages postés 14 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 1 avril 2012
22 févr. 2009 à 23:14
Merci Jack,

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

@+
3
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
22 févr. 2009 à 15:13
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
0