Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lancer macro

7 réponses
Avatar
Céline
Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci

7 réponses

Avatar
Céline
En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci


Avatar
anonymousA
Bonjour,

les classeurs sont ouverts ( celui d'où tu lances l'instruction
ci-dessous evidemment et le classeur qui contient p.e la procédure
evenementielle BeforeDoubleClick en Feuil1 ). Le classeur qui contient
la feuille Feuil1 en question s'appelle essaievenement.xls.
A partir du principe indiqué , toutes les variations sont evidemment
envisageables. Méfie toi cependant des obligations parfois de
selectionner la feuille à laquelle appartient la proc evenementielle
mais je te laisse découvrir les pièges en question, si tu es concernée.

Application.Run "essaievenement.xls!Feuil1.Worksheet_BeforeDoubleClick",
ActiveCell, True

A+

En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci




Avatar
Céline
Merci,

je testerai tout à l'heure, j'espère que ça ira, car je ne connais pas le
nom du classeur où la procédure d'évènement doit s'executer, j'espère que le
code passera avec ActiveWorkbook



Bonjour,

les classeurs sont ouverts ( celui d'où tu lances l'instruction
ci-dessous evidemment et le classeur qui contient p.e la procédure
evenementielle BeforeDoubleClick en Feuil1 ). Le classeur qui contient
la feuille Feuil1 en question s'appelle essaievenement.xls.
A partir du principe indiqué , toutes les variations sont evidemment
envisageables. Méfie toi cependant des obligations parfois de
selectionner la feuille à laquelle appartient la proc evenementielle
mais je te laisse découvrir les pièges en question, si tu es concernée.

Application.Run "essaievenement.xls!Feuil1.Worksheet_BeforeDoubleClick",
ActiveCell, True

A+

En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci







Avatar
anonymousA
alors ce sera

Application.Run ActiveWorkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True

ou si les instructions sont dans le fichier qui contient la procédure
évenementielle, deux possibilités;

Application.Run Thisworkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True
sans enlever Private devant la déclaration de la procédure evenementielle
ou
Feuil1.Worksheet_BeforeDoubleClick ActiveCell, True
si tu enlèves Private devant la déclaration de la procédure evenementielle

A+

Merci,

je testerai tout à l'heure, j'espère que ça ira, car je ne connais pas le
nom du classeur où la procédure d'évènement doit s'executer, j'espère que le
code passera avec ActiveWorkbook



Bonjour,

les classeurs sont ouverts ( celui d'où tu lances l'instruction
ci-dessous evidemment et le classeur qui contient p.e la procédure
evenementielle BeforeDoubleClick en Feuil1 ). Le classeur qui contient
la feuille Feuil1 en question s'appelle essaievenement.xls.
A partir du principe indiqué , toutes les variations sont evidemment
envisageables. Méfie toi cependant des obligations parfois de
selectionner la feuille à laquelle appartient la proc evenementielle
mais je te laisse découvrir les pièges en question, si tu es concernée.

Application.Run "essaievenement.xls!Feuil1.Worksheet_BeforeDoubleClick",
ActiveCell, True

A+

En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci








Avatar
Céline
Bonjour AnonymousA

Désolée de ne pas avoir donné de nouvelles plus tôt, j'ai un peu regardé le
truc mais sans trop de succès, comme j'avais des procédures plus importantes
à mettre en place j'ai laissé celle-ci de côté.
En plus je me suis plantée, le nom du classeur je le connais, c'est celui de
la feuille qui ne le sera pas, j'avais donc essayé ActiveSheet mais pas eu le
temps de fignoler.

En fait c'est que j'ai écrit dans un classeur A, une macro qui, dans un
autre classeur B, créée une feuille (qui portera un nom de code ex.
"2007_40030" code définit par l'utilisateur) un tableau de calcul, il
existera autant de feuilles (donc de tableaux de calcul) que l'utilisateur
aura besoin.
A un moment l'utilisateur à besoin de faire des calculs via un tableau se
trouvant dans un autre classeur C (tous ces classeurs sont dans un même
dossier) je voulais donc faire ouvrir ce classeur C dès qu'il double
cliquerais dans une cellule, de toute façon j'ai des problèmes de chemin pour
ouvrir ce classeur, je connais le nom du classeur mais pas le chemin, comme
c'est le même chemin que le classeur actif j'avais pensé récupérer ce dernier
et changer le nom du classeur actif par celui du classeur que je veux ouvrir,
mais je n'y arrive pas, je pensais comme je connais le nombre de caractères
du classeur actif (puisque je connais son nom) soustraire ce nombre au path
récupéré et mettre à la place le nom de mon classeur C, mais connais pas
comment faire.

Mais bon, comme ce n'était pas une priorité, les utilisateurs ouvrent le
classeur C manuellement, surtout que d'autant plus il existe deux calculs
demandant l'intervention d'un classeur annexe donc j'ai C et D il me faut un
double click dans une cellule bien définit, comment ma procédure sera quel
classeur ouvrir pour un double click dans une cellule active, j'avais pensé
faire un double click pour un classeur et autre chose pour l'autre mais je ne
vois pas bien quoi et est-ce que l'utilisateur va bien mémorer deux
commandes, j'en doute fort.

Comme tu vois mon problème est loin d'être simple.

Merci d'y avoir réfléchit à bientôt j'espère




alors ce sera

Application.Run ActiveWorkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True

ou si les instructions sont dans le fichier qui contient la procédure
évenementielle, deux possibilités;

Application.Run Thisworkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True
sans enlever Private devant la déclaration de la procédure evenementielle
ou
Feuil1.Worksheet_BeforeDoubleClick ActiveCell, True
si tu enlèves Private devant la déclaration de la procédure evenementielle

A+

Merci,

je testerai tout à l'heure, j'espère que ça ira, car je ne connais pas le
nom du classeur où la procédure d'évènement doit s'executer, j'espère que le
code passera avec ActiveWorkbook



Bonjour,

les classeurs sont ouverts ( celui d'où tu lances l'instruction
ci-dessous evidemment et le classeur qui contient p.e la procédure
evenementielle BeforeDoubleClick en Feuil1 ). Le classeur qui contient
la feuille Feuil1 en question s'appelle essaievenement.xls.
A partir du principe indiqué , toutes les variations sont evidemment
envisageables. Méfie toi cependant des obligations parfois de
selectionner la feuille à laquelle appartient la proc evenementielle
mais je te laisse découvrir les pièges en question, si tu es concernée.

Application.Run "essaievenement.xls!Feuil1.Worksheet_BeforeDoubleClick",
ActiveCell, True

A+

En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci











Avatar
anonymousA
Bonjour,

ici la feuille active est désignée par son codename. Une feuille a deux
noms, un nom pour l'interface avec l'utilisateur ( ce que tu vois dansle
nom de l'onglet) , un nom pour Excel ( le codename ). Ce dernier nom est
modifiable depuis l'éditeur VBE ou par programmation, c'est le nom de
"l'instance" du module de classe worksheet représenté par une feuille
Excel ( si on est bien sur sur une feuille de type worksheet).
Quand on voudras utiliser le style d'instruction suivante, il faudra
alors utiliser le codename de la feuille qui abrite la proc doubleclick

Application.Run ActiveWorkbook.Name & "!" & ActiveSheet.CodeName &
".Worksheet_BeforeDoubleClick", ActiveCell, True

Pour récupérer le nom d'un chemin, il y a bien des manières et je crois
que tu as déjà posé la question sur ce forum.

En fait , ton problème n'est pas peut-être pas si complex mais il
nécessite sans doute d'avoir un peu plus de pratique du modèle d'objet
et une bonne définition fonctionnelle de ce que tu veux faire et enfin
une bonne gestion des erreurs car il n'y a rien de plsu difficile que de
prévoir tout ce que peut faire un utilisateur.
Mais ne te décourage pas, PARIS ne s'est pas fait en jour.

A+

Bonjour AnonymousA

Désolée de ne pas avoir donné de nouvelles plus tôt, j'ai un peu regardé le
truc mais sans trop de succès, comme j'avais des procédures plus importantes
à mettre en place j'ai laissé celle-ci de côté.
En plus je me suis plantée, le nom du classeur je le connais, c'est celui de
la feuille qui ne le sera pas, j'avais donc essayé ActiveSheet mais pas eu le
temps de fignoler.

En fait c'est que j'ai écrit dans un classeur A, une macro qui, dans un
autre classeur B, créée une feuille (qui portera un nom de code ex.
"2007_40030" code définit par l'utilisateur) un tableau de calcul, il
existera autant de feuilles (donc de tableaux de calcul) que l'utilisateur
aura besoin.
A un moment l'utilisateur à besoin de faire des calculs via un tableau se
trouvant dans un autre classeur C (tous ces classeurs sont dans un même
dossier) je voulais donc faire ouvrir ce classeur C dès qu'il double
cliquerais dans une cellule, de toute façon j'ai des problèmes de chemin pour
ouvrir ce classeur, je connais le nom du classeur mais pas le chemin, comme
c'est le même chemin que le classeur actif j'avais pensé récupérer ce dernier
et changer le nom du classeur actif par celui du classeur que je veux ouvrir,
mais je n'y arrive pas, je pensais comme je connais le nombre de caractères
du classeur actif (puisque je connais son nom) soustraire ce nombre au path
récupéré et mettre à la place le nom de mon classeur C, mais connais pas
comment faire.

Mais bon, comme ce n'était pas une priorité, les utilisateurs ouvrent le
classeur C manuellement, surtout que d'autant plus il existe deux calculs
demandant l'intervention d'un classeur annexe donc j'ai C et D il me faut un
double click dans une cellule bien définit, comment ma procédure sera quel
classeur ouvrir pour un double click dans une cellule active, j'avais pensé
faire un double click pour un classeur et autre chose pour l'autre mais je ne
vois pas bien quoi et est-ce que l'utilisateur va bien mémorer deux
commandes, j'en doute fort.

Comme tu vois mon problème est loin d'être simple.

Merci d'y avoir réfléchit à bientôt j'espère




alors ce sera

Application.Run ActiveWorkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True

ou si les instructions sont dans le fichier qui contient la procédure
évenementielle, deux possibilités;

Application.Run Thisworkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True
sans enlever Private devant la déclaration de la procédure evenementielle
ou
Feuil1.Worksheet_BeforeDoubleClick ActiveCell, True
si tu enlèves Private devant la déclaration de la procédure evenementielle

A+

Merci,

je testerai tout à l'heure, j'espère que ça ira, car je ne connais pas le
nom du classeur où la procédure d'évènement doit s'executer, j'espère que le
code passera avec ActiveWorkbook



Bonjour,

les classeurs sont ouverts ( celui d'où tu lances l'instruction
ci-dessous evidemment et le classeur qui contient p.e la procédure
evenementielle BeforeDoubleClick en Feuil1 ). Le classeur qui contient
la feuille Feuil1 en question s'appelle essaievenement.xls.
A partir du principe indiqué , toutes les variations sont evidemment
envisageables. Méfie toi cependant des obligations parfois de
selectionner la feuille à laquelle appartient la proc evenementielle
mais je te laisse découvrir les pièges en question, si tu es concernée.

Application.Run "essaievenement.xls!Feuil1.Worksheet_BeforeDoubleClick",
ActiveCell, True

A+

En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci












Avatar
Céline
Je te remercie beaucoup, oui je me trouve à créer un truc bien au-dessus de
mes possibilités de base, mais le hic c'est qu'à la base je ne savais pas
vraiment ce qu'il fallait faire et qu'en fait les demandes de calculs sont
venues s'ajouter de plus en plus nombreuses et complexes, en gros au moment
de la création de la macros je ne savais pas ce qu'il fallait qu'elle fasse
je ne connais pas les besoins des utilisateurs (c'est quand même très gênant
!!!!) il a fallu que constamment j'adapte et modifie le tableau à créer.
D'autant plus que ça faisait plus de 6 mois que je n'avais pas retouché au
VBA donc oublié plein de choses et prise par le temps mon cerveau buttait et
buggait souvent !!
Ton aide m'est précieuse ainsi que celle de toute personne ici, mais c'est
décidé depuis que j'ai remis en route mes petites neuronnes sur le VBA
maintenant je ne vais plus le lâcher et constamment apprendre, je pense que
tu me retrouveras un bon nombre de fois ici !!

Merci encore et à bientôt


Bonjour,

ici la feuille active est désignée par son codename. Une feuille a deux
noms, un nom pour l'interface avec l'utilisateur ( ce que tu vois dansle
nom de l'onglet) , un nom pour Excel ( le codename ). Ce dernier nom est
modifiable depuis l'éditeur VBE ou par programmation, c'est le nom de
"l'instance" du module de classe worksheet représenté par une feuille
Excel ( si on est bien sur sur une feuille de type worksheet).
Quand on voudras utiliser le style d'instruction suivante, il faudra
alors utiliser le codename de la feuille qui abrite la proc doubleclick

Application.Run ActiveWorkbook.Name & "!" & ActiveSheet.CodeName &
".Worksheet_BeforeDoubleClick", ActiveCell, True

Pour récupérer le nom d'un chemin, il y a bien des manières et je crois
que tu as déjà posé la question sur ce forum.

En fait , ton problème n'est pas peut-être pas si complex mais il
nécessite sans doute d'avoir un peu plus de pratique du modèle d'objet
et une bonne définition fonctionnelle de ce que tu veux faire et enfin
une bonne gestion des erreurs car il n'y a rien de plsu difficile que de
prévoir tout ce que peut faire un utilisateur.
Mais ne te décourage pas, PARIS ne s'est pas fait en jour.

A+

Bonjour AnonymousA

Désolée de ne pas avoir donné de nouvelles plus tôt, j'ai un peu regardé le
truc mais sans trop de succès, comme j'avais des procédures plus importantes
à mettre en place j'ai laissé celle-ci de côté.
En plus je me suis plantée, le nom du classeur je le connais, c'est celui de
la feuille qui ne le sera pas, j'avais donc essayé ActiveSheet mais pas eu le
temps de fignoler.

En fait c'est que j'ai écrit dans un classeur A, une macro qui, dans un
autre classeur B, créée une feuille (qui portera un nom de code ex.
"2007_40030" code définit par l'utilisateur) un tableau de calcul, il
existera autant de feuilles (donc de tableaux de calcul) que l'utilisateur
aura besoin.
A un moment l'utilisateur à besoin de faire des calculs via un tableau se
trouvant dans un autre classeur C (tous ces classeurs sont dans un même
dossier) je voulais donc faire ouvrir ce classeur C dès qu'il double
cliquerais dans une cellule, de toute façon j'ai des problèmes de chemin pour
ouvrir ce classeur, je connais le nom du classeur mais pas le chemin, comme
c'est le même chemin que le classeur actif j'avais pensé récupérer ce dernier
et changer le nom du classeur actif par celui du classeur que je veux ouvrir,
mais je n'y arrive pas, je pensais comme je connais le nombre de caractères
du classeur actif (puisque je connais son nom) soustraire ce nombre au path
récupéré et mettre à la place le nom de mon classeur C, mais connais pas
comment faire.

Mais bon, comme ce n'était pas une priorité, les utilisateurs ouvrent le
classeur C manuellement, surtout que d'autant plus il existe deux calculs
demandant l'intervention d'un classeur annexe donc j'ai C et D il me faut un
double click dans une cellule bien définit, comment ma procédure sera quel
classeur ouvrir pour un double click dans une cellule active, j'avais pensé
faire un double click pour un classeur et autre chose pour l'autre mais je ne
vois pas bien quoi et est-ce que l'utilisateur va bien mémorer deux
commandes, j'en doute fort.

Comme tu vois mon problème est loin d'être simple.

Merci d'y avoir réfléchit à bientôt j'espère




alors ce sera

Application.Run ActiveWorkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True

ou si les instructions sont dans le fichier qui contient la procédure
évenementielle, deux possibilités;

Application.Run Thisworkbook.Name &
"!Feuil1.Worksheet_BeforeDoubleClick", ActiveCell, True
sans enlever Private devant la déclaration de la procédure evenementielle
ou
Feuil1.Worksheet_BeforeDoubleClick ActiveCell, True
si tu enlèves Private devant la déclaration de la procédure evenementielle

A+

Merci,

je testerai tout à l'heure, j'espère que ça ira, car je ne connais pas le
nom du classeur où la procédure d'évènement doit s'executer, j'espère que le
code passera avec ActiveWorkbook



Bonjour,

les classeurs sont ouverts ( celui d'où tu lances l'instruction
ci-dessous evidemment et le classeur qui contient p.e la procédure
evenementielle BeforeDoubleClick en Feuil1 ). Le classeur qui contient
la feuille Feuil1 en question s'appelle essaievenement.xls.
A partir du principe indiqué , toutes les variations sont evidemment
envisageables. Méfie toi cependant des obligations parfois de
selectionner la feuille à laquelle appartient la proc evenementielle
mais je te laisse découvrir les pièges en question, si tu es concernée.

Application.Run "essaievenement.xls!Feuil1.Worksheet_BeforeDoubleClick",
ActiveCell, True

A+

En gros je voudrais lancer une procédure d'évènement mais à partir d'une
procédure sur un autre classeur.


Bonjour à tous

Est-il possible à partir d'une macro se trouvant sur un classeur X lancer
une autre procédure sur un classeur Y au moment où l'on doubleclick sur une
cellule du classeur Y.

Merci