Portabilité d'une variable

bonite

XLDnaute Nouveau
:eek:Bonjour:eek:,
dans une appli composée d'un classeur maitre (.xlsm) comportant une feuille accueil et une feuille param puis d'un classeur secondaire contenant une feuille param et deux feuilles de données (.xlsx), je souhaite pouvoir conserver un pointeur (wkx) sur chaque classeur et utilisable à tout moment. J'ai défini ces deux champs (wk1 et wk2) en public dans un module externe à un UserForm. Or il semble que ces pointeurs perdent leur adressage pendant les différents traitements.
Ma question : comment conserver ces valeurs pendant toute l'exécution ce mon code se trouvant en totalité dans le xlsm.
Merci pour toutes réponses qui pourraient de prés ou de loin me renseigner.
En cette fin d'année, à tous et à toutes, je souhaite une bonne et heureuse année.
:confused::confused::cool::cool:;)
 
G

Guest

Guest
Re : Portabilité d'une variable

Bonjour et bonne fin d'année,

Comment savoir, ce qui se passe sans exemple?
Si tu as un classeur Maître qui référencie deux autres classeurs, il n'y a aucune raison apparente que tes variables se perdent en cours de route.

A+
 

bonite

XLDnaute Nouveau
Re : Portabilité d'une variable

En réponse à ta demande, voici l'adresse de mes fichiers :
Ce lien n'existe plus pour le fichier maître (.xlsm)
et
Ce lien n'existe plus pour le fichier squelette des fichiers de données (.wlsx)

Espérant que tu pourras t'en sortir

Bonne journée:p:)
 
G

Guest

Guest
Re : Portabilité d'une variable

Re,

Peux-tu faire un simple fichier avec le stricte minimum (Quelques données anonymisées et la macro ), à joindre sur le forum et non ailleurs avec les deux autres fichiers. Eventuellement zipper.

A+
 

bonite

XLDnaute Nouveau
Re : Portabilité d'une variable

Re,
il m'est difficile d'accéder à ta requête la taille des fichiers transférables étant faibles. L'accès aux fichiers que j'ai mis à disposition est public et non zippés.
A l'ouverture du classeur .xlsm, tu dois sélectionner un compte (il n'y en qu'un seul, totalement anonymisé).
Puis tu sélectionnes le compte souhaité (il te faudra modifier dans la feuille param du classeur maître en 2,10 pour mettre modele au lieu de 000123456_98.
J'ai du remplacer feuilleParam par "Param" et recharger wk1 et wk2 chaque fois que cela était utile.
 

Staple1600

XLDnaute Barbatruc
Re : Portabilité d'une variable

Bonsoir


Comme dit plus bas par Hasco, prends le temps de créer des fichiers exemples ex-nihilo (sans partir de tes fichiers originaux)
Dans ton cas, on a juste besoin de 3 classeurs avec chacun une feuille et par exemple une valeur en A1, B1, C1 renseignées et ton code VBA.

On pourra ainsi tester les variables d'un classeur à l'autre.

Tout ceci doit faire un zip de moins 100ko normalement et tu pourras le poster directement dans ta discussion sur XLD.
 

bonite

XLDnaute Nouveau
Re : Portabilité d'une variable

Bonjour,

tout d'abord tous mes voeux pour cette nouvelle année.

Voici donc deux classeurs purgés pour réduire leur taille. Je ne sais si mes initialisations sont corrects toujours est-il que je perds de temps à autre l'adressage de wk1 et wk2.

Merci pour votre aide
 

Pièces jointes

  • Maitre.xlsm
    23.5 KB · Affichages: 54
  • modele.xlsx
    11.7 KB · Affichages: 55
  • modele.xlsx
    11.7 KB · Affichages: 58
  • modele.xlsx
    11.7 KB · Affichages: 57

bonite

XLDnaute Nouveau
Re : Portabilité d'une variable

Je pense que tu n'as pas du chercher dans l'ensemble du code car il se trouve dans le code suivant :
VB:
Private Sub Workbook_Open()
    feuilleAccueil = "Accueil"
    feuilleParam = "Param"
    Set wk1 = Workbooks(ThisWorkbook.Name)
End Sub
C'est à dire lorsque j'ouvre le classeur.
Bonsoir
 

bonite

XLDnaute Nouveau
Re : Portabilité d'une variable

Re,

La différence étant qu'il ne s'agit pas du même classeur car après l'ouverture d'un classeur, le classeur actif devient celui qui a été ouvert et non le classeur qui l'a ouvert. Ce qui devrait permettre d'utiliser à tout moment le classeur que l'on souhaite.

J'ai peut-être faux dans mon raisonnement.

Aussi, je m'aperçois que j'ai mal placé l'initialisation de wk2 puisqu'il aurait du être renseigné de suite aprés l'ouverture du fichier et non après la fermeture de celui-ci. J'ai créé mon fichier exemple un peu trop rapidement.

Merci pour ta réactivité.

Cordialement.
 
G

Guest

Guest
Re : Portabilité d'une variable

Bonjour,

Vraiment du mal à comprendre ce que tu veux faire!
Code:
Set WK1 = ThisWorkBook
est suffisant: Thisworkbook est le classeur contenant la macro

Dans ton code ci-dessous:
1- ouverture du classeur modele
Workbooks.Open Filename:= _
"C:\Users\JOUFFRAY\Desktop\Suivi bancaire\Test\modele.xlsx"
2- enregistrement sous nouveau.xlsx
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\JOUFFRAY\Desktop\Suivi bancaire\Test\nouveau.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
3- on ferme sa fenêtre (donc) le classeur
ActiveWindow.Close

4- Là ???????????? Wk2 référencera le classeur contenant la macro donc = Wk1!!!!
Set wk2 = Workbooks(ThisWorkbook.Name)


Question également: pourquoi ne pas utiliser un fichier.xltx dont le nom serait 'Nouveau' et ouvert par

Set Wk2=workbooks.Add( thisworkbook.Path & "\Nouveau.xltx")

et apparaîtra tel que "Nouveau1" ou "Nouveau2" tant qu'il ne sera pas enregistré.

A+
 

bonite

XLDnaute Nouveau
Re : Portabilité d'une variable

A dire vrai, je ne connais pas l'utilisation de classeur .xltx aussi je vais rechercher l'utilité d'un tel classeur. Je reviendrai alors dans le forum pour peaufiner mon application.

Cependant je ne trouve pas comment créer un classeur portant cette extension car Excel ne me propose pas cette extension. Aussi pourrais-tu me dire à quoi cela correspondant ?

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 862
Membres
103 979
dernier inscrit
imed