[VBA] Variable Publique

Fermé
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 - 2 août 2011 à 10:54
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 - 2 août 2011 à 12:14
Bonjour,

J'ai un petit problème au niveau des déclarations dans mon programme VBA. Je vous explique le principe du programme. Je lance une userform dans laquelle je rentre la valeur d'une année (exemple : 2010 , stockée dans une variable définie PUBLIQUE dans tous les codes de chaque Userform utilisée). Ensuite, après avoir cliquer sur un bouton "Ok", cela ouvre une nouvelle userform, qui me demande de renseigner un nom dans une texte box. Ici j'aimerais que la textebox se mettre à jour à chaque changement en ajoutant l'année rentrée dans l'ancienne userform à la fin du texte. Néanmoins, il n'arrive pas à retrouver la valeur de "an" lorsqu'il ouvre la deuxième userform....

Public an As String
Public Sub colbox_Change()
colbox.Value = "" & colbox.Value & " " & an & ""
End Sub

Comment fonctionne ces fichus variables Public ? Merci d'avance.
Cordialement, LeDénicheur.

2 réponses

bonjour

une variable publique, pour être visible globalement, doit être déclarée au niveau d'un module (cf aide vba)

sinon il y a la possibilité de récupérer l'année (saisie dans une textbox?) de la première userform pour l'afficher dans la deuxième (:

exemple :
Private Sub UserForm_Initialize()
Me.Textbox12.Value  =  Userform1.Textbox8.Value
End Sub

Bonne suite
0
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 362
Modifié par LeDénicheur le 2/08/2011 à 12:12
Merci pour ces précisions. La déclaration des Userforms sous forme de Public Sub et le fait de déclarer Public les variables au sein meme d'une userform est donc inutile ?
Sinon je viens d'essayer avec ton exemple, à l'ouverture de la deuxième userform, il me dit que l'élément n'est pas définie.
Mais je viens de comprendre pourquoi....Un "Unload" c'était glissé deux lignes avant l'appel de la deuxième userform . . . .Ce qui rendait apparemment la variable inutilisable en dehors de la première userform..

Prenez le temps de bien rédiger vos questions, et nous prendrons le temps d'y répondre......Timmy ?!?
0
la notion de public est relative à son emplacement :
-au niveau de la userform, de la feuille ..
-au niveau projet ( module)
0
LeDénicheur Messages postés 565 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 1 décembre 2013 362
2 août 2011 à 12:14
D'accord, mais le fait que la variable soit public, cela veut-il dire que nous pouvons par l'exemple l'utiliser entre deux "End Sub". Si c'est le cas, quelle est l'interet de définir des fonctions avec des variables d'appel plutot que des Sub ?
0