naviguer entre deux classeurs différents(2 projets VBA)

A2H

XLDnaute Nouveau
Bonjour
Je vous remercie beaucoup pour votre aide que j'ai besoin
J'ai 2 classeurs (CL1 et Cl2) dont chacun contient un "userform" (USF1 et USF2) je veut mettre un bouton dans chaque "userforme" dans le but de fermer l'un et ouvrir l'autre.
 

Jacky67

XLDnaute Barbatruc
Bonjour
Je vous remercie beaucoup pour votre aide que j'ai besoin
J'ai 2 classeurs (CL1 et Cl2) dont chacun contient un "userform" (USF1 et USF2) je veut mettre un bouton dans chaque "userforme" dans le but de fermer l'un et ouvrir l'autre.
Bonjour,

Un petit classeur brouillon avec les "userform" en question serait bienvenu
Il faudra aussi les adresses complète des classeurs à ouvrir/fermer.
Exemple: D:\répertoire1\répertoire2\nom du classeur+extension
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez: Application.OnTime Now, Feuil.Shapes("Bouton 1").OnAction
Suivi de Me.Hide ou Unload Me, "Bouton 1" étant un bouton de formulaire auquel vous auriez aussi affecté la macro de l'autre classeur qui affiche son UserForm
 

Dranreb

XLDnaute Barbatruc
Mais ma solution marche aussi en copiant le "Bouton 1" de CL2.xlsm dans le CL1.xlsm comme "Bouton 2"
VB:
Private Sub CommandButton1_Click()
Application.OnTime Now, Feuil1.Shapes("Bouton 2").OnAction
Unload Me
End Sub
Le CL2.xlsm sera ouvert si nécessaire parce que la propriété OnAction du shape contient son chemin s'il n'est pas ouvert.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
J'avais essayé, ça marchait. Mais ça implique de mettre dans chaque classeur aussi un bouton pour l'autre.
Sinon il est peut être possible de mettre le chemin complet dans un Application.OnTime Now, …
Mais je ne suis pas absolument sûr que ça ne va pas ré-ouvrir le classeur.
Au moins la propriété OnAction d'un contrôle de formulaire porte automatiquement le chemin s'il n'est pas ouvert, puis ne le porte plus une fois qu'il l'est.
 

A2H

XLDnaute Nouveau
Bonjour.
J'avais essayé, ça marchait. Mais ça implique de mettre dans chaque classeur aussi un bouton pour l'autre.
Sinon il est peut être possible de mettre le chemin complet dans un Application.OnTime Now, …
Mais je ne suis pas absolument sûr que ça ne va pas ré-ouvrir le classeur.
Au moins la propriété OnAction d'un contrôle de formulaire porte automatiquement le chemin s'il n'est pas ouvert, puis ne le porte plus une fois qu'il l'est.
Merci beaucoup Dranreb
Je veux pas faire des bouton dans le classeur je les voudrais bien dans des userfom
Mon projet lorsque j'ouvre un classeur un userform s'ouvre simultanément, tous mon travail se réalise sur les user formes avec votre solution les boutons me permet l'accés une seul fois au classeur destinataire. ao moment du retour je ne vois plus le userform
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il devrait être possible aussi de définir un nom dans le classeur référençant la cellule A1 de la 1ère feuille de l'autre classeur.
Cette référence là aussi porterait le chemin seulement s'il n'est pas déjà ouvert. Il ne resterait qu'à faire un
Application OnTime Now, Split(ThisWorkbook.Names("LeNom").RefersTo, "]")(0) & "]!LeNomDeLaMacro"
À essayer en tout cas.
Comment ça vous ne voyez plus le UserForm ? S'il a sa propriété ShowModal à True, c'est normal, non ? Il doit être fermé pour que l'autre puisse s'ouvrir. C'est le bouton de l'autre qui le fera fermer le sien après avoir planifié pour tout de suite le réaffichage du 1er.
Avec des propriétés ShowModal à False sur les deux UserForm, il n'y a plus aucune hiérarchie dans leurs affichages, leurs méthode Show s'exécutent et rendent la main aussitôt à la procédure appelante. Il n'est alors plus nécessaire de différer les exécutions par des OnTime pour ne pas encombrer la pile d'un tas d’exécutions imbriquées non terminées.
Mais dans ce cas, à la limite, il n'y a plus rien de spécial à faire: les deux UserForm peuvent être affichés tout le temps en même temps, et vous pouvez toujours accéder à l'un ou à l'autre quand vous voulez.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour,
Mon projet lorsque j'ouvre un classeur un userform s'ouvre simultanément
Ça c'est nouveau, alors voyez les fichiers (2) joints.

Pour chaque fichier Les macros sont dans ThisWorkbook et dans le code de l'UserForm.

Dites A2H je suis le seul à joindre des fichiers et vous avez l'air de vous en foutre comme de l'an 40 !!!

A+
 

Pièces jointes

  • CL1(2).xlsm
    22.9 KB · Affichages: 24
  • CL2(2).xlsm
    22.9 KB · Affichages: 21

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN