Macro reservées à un classeur
Fermé
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
-
15 déc. 2011 à 10:50
Phil-13 Messages postés 22 Date d'inscription jeudi 15 décembre 2011 Statut Membre Dernière intervention 5 mars 2023 - 15 déc. 2011 à 18:06
Phil-13 Messages postés 22 Date d'inscription jeudi 15 décembre 2011 Statut Membre Dernière intervention 5 mars 2023 - 15 déc. 2011 à 18:06
A voir également:
- Impossible de modifier une macro dans un classeur masqué
- Appel masqué - Guide
- Comment modifier un pdf - Guide
- Modifier liste déroulante excel - Guide
- Modifier dns - Guide
- Masque apple - Guide
6 réponses
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 déc. 2011 à 11:11
15 déc. 2011 à 11:11
Bonjour,
Le plus simple... Changer les raccourcis ?
A+
Le plus simple... Changer les raccourcis ?
A+
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 15/12/2011 à 11:56
Modifié par lermite222 le 15/12/2011 à 11:56
10 classeurs ouvert avec 10 macros avec le même raccourci = exécution des 10 Macros.
J'ai bien une autre idée mais..
Montre un peu deux de tes macros différentes.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
J'ai bien une autre idée mais..
Montre un peu deux de tes macros différentes.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 12:01
15 déc. 2011 à 12:01
Classeur C1 :
Option Explicit
Private Sub Workbook_Open()
Application.OnKey "^~", "Zoom" ' CTRL ENTER
End Sub
Module 1 :
Option Explicit
Sub Zoom()
MsgBox "Classeur C1"
End Sub
Classeur C2 :
Option Explicit
Private Sub Workbook_Open()
Application.OnKey "^~", "Zoom" ' CTRL ENTER
End Sub
Module 1 :
Option Explicit
Sub Zoom()
MsgBox "Classeur C2"
End Sub
Option Explicit
Private Sub Workbook_Open()
Application.OnKey "^~", "Zoom" ' CTRL ENTER
End Sub
Module 1 :
Option Explicit
Sub Zoom()
MsgBox "Classeur C1"
End Sub
Classeur C2 :
Option Explicit
Private Sub Workbook_Open()
Application.OnKey "^~", "Zoom" ' CTRL ENTER
End Sub
Module 1 :
Option Explicit
Sub Zoom()
MsgBox "Classeur C2"
End Sub
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 12:02
15 déc. 2011 à 12:02
Ctrl + Enter affiche le message du 1er classeur ouvert avec activation des macros ...
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 déc. 2011 à 12:23
15 déc. 2011 à 12:23
Il n'y a quand même pas seulement le nom du classeur dans tes macros ?
Montre exactement ce qu'il y a dedans.
Montre exactement ce qu'il y a dedans.
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 13:30
15 déc. 2011 à 13:30
Bien sur que non c'est juste un exemple pour faire court. Ma macro zoom est programmée pour faire une énumération de toutes les feuilles du classeur et zoomer afin d'afficher à l'échèle de l'écran une sélection de cellules (jamais les mêmes selon les écrans). Mais ce n'est pas là le fond du problème, c'est le concept de la macro "réservée" à un classeur que j'essaye de mettre en place
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 déc. 2011 à 12:31
15 déc. 2011 à 12:31
En relisant ton dernier commentaire.. la macro ne doit être activée que pour le premier classeur ouvert et pas pour les autres.
Peut-être avec
Peut-être avec
Private Sub Workbook_Open() If Application.Workbooks.Count = 1 Then Application.OnKey "^~", "Zoom" ' CTRL ENTER End If End Sub
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 13:27
15 déc. 2011 à 13:27
Non, non, ce n'est pas qu'elle doit n'être activée que pour le 1er classeur ouvert, je souhaite juste que chaque action Ctrl+Enter sur un classeur déclenche la macro correspondante au classeur. Sur C1 CTRL+Enter doit afficher "Classeur C1" et sur le classeur C2 le message doit être "Classeur C2". Actuellement, en ouvrant C1 puis C2 (et en activant les macros dans les 2 classeurs), Ctrl+Enter affiche toujours le message du 1er classeur ouvert.
De plus je voudrais qu'en activant pas les macros sur un des 2 classeurs, Ctrl+enter soit sans effet (actuellement Ctrl+Enter déclenche la macro du classeur ouvert avec prise en charge des macros).
En définitive, je pensais qu'en définissant une macro au sein d'un classeur, cette macro n'était visible QUE de ce classeur et non d'un autre.
De plus je voudrais qu'en activant pas les macros sur un des 2 classeurs, Ctrl+enter soit sans effet (actuellement Ctrl+Enter déclenche la macro du classeur ouvert avec prise en charge des macros).
En définitive, je pensais qu'en définissant une macro au sein d'un classeur, cette macro n'était visible QUE de ce classeur et non d'un autre.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 15/12/2011 à 13:47
Modifié par lermite222 le 15/12/2011 à 13:47
pour simuler ce que tu veux tu pourrais mettre en début de macro
et laisser toutes les macros active
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
If ActiveWorkbook.Name <> ThisWorkbook.Name Then Exit Sub
et laisser toutes les macros active
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 14:05
15 déc. 2011 à 14:05
Je viens d'essayer, ça ne marche pas, le classeur actif quand je suis sur C1 (et que j'ai ouvert C1 en premier puis C2) est bien C1, mais il exécute la macro Zoom de C2. De plus je ne veux pas qu'il essaye de lancer la macro de C2, conceptuellement elle devrait être invisible depuis C1 et c'est la macro de C1 qui devrait être exécutée.
Pour faire ce test j'ai remplacé la macro zoom dans les 2 classeurs comme suit :
dans C1 MsgBox "Classeur C1 - Classeur actif " & ActiveWorkbook.Name
Dans C2 MsgBox "Classeur C2 - Classeur actif " & ActiveWorkbook.Name
Pour faire ce test j'ai remplacé la macro zoom dans les 2 classeurs comme suit :
dans C1 MsgBox "Classeur C1 - Classeur actif " & ActiveWorkbook.Name
Dans C2 MsgBox "Classeur C2 - Classeur actif " & ActiveWorkbook.Name
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 14:06
15 déc. 2011 à 14:06
Sur C1 j'ai le message suivant : Classeur C1 - Classeur actif C1
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 14:20
15 déc. 2011 à 14:20
Ouuuups je me suis trompé, j'ai le message : Classeur C2 - Classeur actif C1
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 déc. 2011 à 14:42
15 déc. 2011 à 14:42
Mais non... met exactement la ligne comme je l'ai écrite.
te relisant...
C1 ouvert en premier >> Ensuite C2
C2 Actif > La macro de C1 doit fonctionner et pas celle de C2 ??
Si oui, ça va être compliquer
J'en revient à mes postes précédant.. montre les 2 macros en entier.
te relisant...
C1 ouvert en premier >> Ensuite C2
C2 Actif > La macro de C1 doit fonctionner et pas celle de C2 ??
Si oui, ça va être compliquer
J'en revient à mes postes précédant.. montre les 2 macros en entier.
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 14:54
15 déc. 2011 à 14:54
Je n'ai que ça dans mon test. Il faut créer un classeur C1 puis un classeur C2, y mettre les événements suivants :
Dans les 2 classeurs :
Private Sub Workbook_Open()
Application.OnKey "^~", "Zoom" ' CTRL ENTER
End Sub
puis dans le module suivant de C1
Sub Zoom()
MsgBox "Classeur C1 - Classeur actif " & ActiveWorkbook.Name
End Sub
et dans le module suivant de C2
Sub Zoom()
MsgBox "Classeur C2 - Classeur actif " & ActiveWorkbook.Name
End Sub
Dans les 2 classeurs :
Private Sub Workbook_Open()
Application.OnKey "^~", "Zoom" ' CTRL ENTER
End Sub
puis dans le module suivant de C1
Sub Zoom()
MsgBox "Classeur C1 - Classeur actif " & ActiveWorkbook.Name
End Sub
et dans le module suivant de C2
Sub Zoom()
MsgBox "Classeur C2 - Classeur actif " & ActiveWorkbook.Name
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 15/12/2011 à 15:18
Modifié par lermite222 le 15/12/2011 à 15:18
Une autre façon de faire ?
Le raccourci Ctrl+Enter sélectionne la colonne active !! donc pas possible avec Enter.
J'ai mis Ctrl+d
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Le raccourci Ctrl+Enter sélectionne la colonne active !! donc pas possible avec Enter.
J'ai mis Ctrl+d
Private Sub Workbook_Open() Dim S As String S = "'" & Workbooks(1).Name & "'!Zoom" Application.MacroOptions Macro:=S, _ Description:="", ShortcutKey:="d" End Sub
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 15/12/2011 à 16:23
Modifié par michel_m le 15/12/2011 à 16:23
Bonjour
Excusez l'incruste une piste
le nom du 1° classeur ouvert reste en mémoire jusqu'à l'extinction d'excel à adapter
puis appel des "zooms"
Sub Zoom()
MsgBox "Classeur actif " & Application.ExecuteExcel4Macro("get.name(""macroxl4"")")
End Sub
l.longre:
http://xcell05.free.fr/
Michel
Excusez l'incruste une piste
le nom du 1° classeur ouvert reste en mémoire jusqu'à l'extinction d'excel à adapter
dans les codes d'ouverture If Application.Workbooks.Count = 1 Then '1° classeur ouvert (d'après lermite) ' ("curiosité" trouvée sur le site web de Laurent Longre ("hidden namespace") ) ExecuteExcel4Macro "set.name(""macroxl4"",""" & ThisWorkbook.Name & """)" End if
puis appel des "zooms"
Sub Zoom()
MsgBox "Classeur actif " & Application.ExecuteExcel4Macro("get.name(""macroxl4"")")
End Sub
l.longre:
http://xcell05.free.fr/
Michel
Phil-13
Messages postés
22
Date d'inscription
jeudi 15 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
2
15 déc. 2011 à 18:06
15 déc. 2011 à 18:06
Bonjour Michel et merci d'avoir cherché une solution. En fait celle que tu proposes est trop complexe pour ma problématique : Je souhaite juste une solution pour que des procédures (macros) faisant des traitements quasiment identiques (on pourrait imaginer msgbox "toto' dans une et msgbox "tata" dans l'autre) puissent être nommées de de la même façon tout en restant exclusivement réservées au classeur auquel elles appartiennent. Cela ne semble pas possible non plus sous Excel 2010, la version que j'utilise chez moi. Cela revient à nommer toutes les macro avec un préfixe ou un sufixe (genre C1_Zoom et C2_Zoom). C'est dommage que Excel ne le fasse pas de lui même sur une macro définie pour un seul classeur. J'ai essayé aussi Call ThisWorkbook.Zoom, ca ne marche pas ... Je continue de chercher ...
15 déc. 2011 à 11:27
Oui, c'est sûr, mais alors autant garder les raccourcis et changer le nom des macros, sinon avec 10 classeurs différents partageant une même macro (zoom sur quelques cellules toujours différentes dans mon exemple), il faudrait alors se souvenir des raccourcis affectés à chacun des classeurs ... Ce n'est pas envisageable
Merci