Déclarer un fichier en "public variable"

Bonjour le forum,

J'ai besoin d'un coup sur un sujet qui me semble pourtant simple... Merci d'avance pour votre aide.

Le contexte : J'ai un code qui effectue des calculs dans 2 fichiers différents. Le wb1 contient la macro et le wb2 est un fichier téléchargé à partir d'un logiciel interne, son nom n'est jamais le même.

Dans le premier module je déclare mes 2 fichiers comme ceci:

Public wb2 As Excel.Workbook

Sub macro ()
... 
Set wb2 = Activeworkbook
...

'J'utilise thisworkbook pour déclarer wb1

J'ai un deuxième module ou je réintégre les données calculées dans wb2, mais c'est ici que je séche, je ne sais pas comment "repointer" wb2. Vous auriez une astuce pour m'aider ?

J'espère que c'est clair

Merci,

Erwan

Bonjour,

Normalement, déclarer en variable public devrait suffire. Mais il faut que wb2 soit affecté avant son utilisation dans la deuxième macro.

Mais il pourrait être encore mieux de prévoir un paramètre workbook afin de passer wb2 en argument :

Sub Mapremieremacro()

dim wb2 as workbook
set wb2 = Activeworkbook

Call Madeuxiememacro(wb2) 'appelle 2è macro avec wb2 en argument

...

Sub Madeuxiememacro(Classeur as workbook)

'chaque Classeur est remplacé par wb2
'exemple de code
With Classeur
    .sheets(1).copy after:=.Sheets(2)
    .sheets(1).delete
    .close true
end with

end sub

Cdlt,

Bonjour 3GB,

Merci pour ta réponse. Oui je suis d'accord avec toi, je ne peux pas affecter wb2 dans ma deuxième macro en tant que "ActiveWorkbook" parce que lors du lancement du 2ème module, le fichier actif est wb1.

Le process user est :

  1. Lancement de la macro sur wb2
  2. Ajustements manuel
  3. Lancement de la macro sur wb1

Je pense à qqlch maintenant:

  • Est ce que c'est pas intéressant de stocker le nom du fichier dans une cellule le temps de la macro
  • Utiliser la celulle pour ouvrir le document via workbook.open

C'est une bonne idée ou une fausse bonne idée ?

Merci d'avance

Erwan

Bonjour Skadowche,

En fait, je ne peux pas répondre comme ça. Le mieux serait que tu postes les 2 macros avec l'ordre d'exécution.

Mais quand j'ai mis Set wb2 = activeworkbook, j'ai supposé que ce second classeur était rendu actif (par son ouverture) juste avant.

Rechercher des sujets similaires à "declarer fichier public variable"