Passage d'une variable d'une macro à l'autre

Passage d'une variable d'une macro à l'autre - VB/VBA/VBS - Programmation

Marsh Posté le 16-02-2005 à 12:45:56    

Bonjour,
 
Je débute en vba mais j'ai déjà programmé un peu à droite à gauche ;).
Mon problème est le suivant : j'ai une macro mainMacro qui apelle un certain
nombre d'autres macros et une fonction.
 
Ca ressemble à  ça :
 
sub mainMacro ()
 
 call macro1
 blabla=fonction()
 call macro2
 call macro 3
 
end Sub
 
Mon but est d'utiliser blabla dans macro 2 et macro 3 hors actuellement ça ne fonctionne pas. Faut il rajouter des global, public ou quelque chose du genre? Si oui ou?  
 
Je précise que pour le moment, si j'utilise blabla dans la macro main, ça fonctionne
 
D'avance merci,
 
C. apprenti vbiste.

Reply

Marsh Posté le 16-02-2005 à 12:45:56   

Reply

Marsh Posté le 16-02-2005 à 12:47:00    

De quel type est blabla ? String ? Integer ?
 
Sinon revoit un peu la théorie sur les Sub et Function ;)

Reply

Marsh Posté le 16-02-2005 à 12:58:31    

C'est de type string, pardon de pas avoir préciser.
 
Et je veux bien revoir ma théorie (théorie qui a commencé hier) mais peux tu m'indiquer un site?  
 
En fait je suis un peu dans le brouillard sur les raisons qui font que ça ne marche pas, les macros étant un truc propre à VB j'ai pas l'habitude d'en manipuler quand je programme, donc je sais pas trop la différence avec une fonction et sur les utilisations respectives de ces solutions.

Reply

Marsh Posté le 16-02-2005 à 12:59:14    

C'est quoi tes macros ? Des vrais macros, ou des Sub ou Function ?

Reply

Marsh Posté le 16-02-2005 à 13:09:50    

sub mainMacro () -> sub
 
 call macro1 -> sub
 blabla=fonction() -> function()
 call macro2 -> sub
 call macro 3 -> sub
 
end Sub
 
Je croyais que sub et macro c'était la même chose... visiblement j'ai beaucoup de lacune :s...

Reply

Marsh Posté le 16-02-2005 à 13:19:39    

C'est presque pareil. Une fonction va retourner une valeur, mais pas une sub.
 
Donc utilise un paramètre :

Code :
  1. Public Sub Macro1(ByVal pouet As String)
  2. ....
  3. End Sub


Et dans ton main :

Code :
  1. blabla = fonction()
  2. Macro1(blabla)

Reply

Marsh Posté le 16-02-2005 à 14:36:01    

Merci beaucoup pour ton aide, cela fonctionne parfaitement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed