Rechercher : dans
Par :

Appel une variable depuis userform VBA excel

Dernière réponse le 1 aoû 2008 à 16:23:03 jo, le 1 aoû 2008 à 11:39:15 
 Signaler ce message aux modérateurs

Bonjour,

Bonjour,

Je suis débutant sur VBA.
J'ai un petit problème et j'espère que quelqu'un pourra m'aider.
Mon pb concerne l'utilisation des variables.

Je souhaiterais faire appel à une variable comprise dans un module depuis un UserForm.

J'ai affecté dans ma procédure des variables à des cellules excel, ex: variable1 = Feuil1.cells(1,1).value
Mais pour chaque nouvelle procedure dans mon module, je doi redefinir cette même variable.
Comment éviter cela?
De plus, je souhaiterais, à l'activation d'un UserForm (UserForm_activate), inserer par defaut dans un textbox la valeur de cette variable.
Si je fais : textbox = Feuil1.cells(1,1).value ==> ca marche
textbox =varaible1 ==> ca ne marche pas

Comment faire?

Merci d'avance pour votre aide,

Jo

Configuration: Windows 2000
Internet Explorer 6.0

1

vbfuté, le 1 aoû 2008 à 14:57:17

Salut,
Il faut que tu récupères ta valeur et que tu la stocke dans une variable PUBLIQUE à l'ensemble de ton projet et non pas que tu identifie la variable à la cellule.
Pour cela, tu dois la définir dans une procédure publique (public sub() et non pas private sub()).
Une fois que ta variable aura récupérer ta valeur, tu pourras l'utiliser à l'endroit que tu voudras de ton application.
Cette technique marche parfaitement, bon courage !!

Répondre à vbfuté

2

dandypunk, le 1 aoû 2008 à 15:00:16

Il faut déclarer ta variable comme Public. Elle sera alors visible par toutes les parties du code.

Dans la partie Déclaration de ThisWorkBook, insère Public MaVariable As ... Il y a certainement plus simple, mais ça tourne.
SNOC XUA TROM (Vieille devise coloniale)

Répondre à dandypunk

3

jo, le 1 aoû 2008 à 15:35:51

Merci pour votre solution vbfuté et dandypunk,


Par contre j'ai une autre question :
Est il possible a partir d'un userform de reprendre une procedure en cours ?
ex:
je lance une procedure
ma procedure debute par une boucle
sous condition un userform s'affiche
selon que je valide ou annule une action à partir de ce userform, je reprends ma boucle en cours à tel ou tel niveau de ma procedure.


Merci
jo

Répondre à jo

4

vbfuté, le 1 aoû 2008 à 16:11:19

Alors je pense que c'est possible, et dans ce cas on fait une boucle dans une autre boucle. Je m'explique :

SI (MaCondition = vrai) ALORS
{ Lancement de l'userform
SI (MonAction = 1) ALORS
{Bloc d'instructions}
SINON
{Bloc d'instructions}
}
SINON
{Bloc d'instructions}.

Si je ne me trompes pas, c'est possible de cette manière.

Répondre à vbfuté

5

 jo, le 1 aoû 2008 à 16:23:03

Oui merci, ca marche de cette manière.

Par curiosité, est ce possible d'intégrer une procedure en cours?

Jo

Répondre à jo
Collection CommentÇaMarche.net