Changer la touche maj pour désactiver le démarrage d'une macro


#1

Bonjour à Tous :wink:

Pour éviter qu’une macro se lance dans un fichier d’Excel, il suffit de faire un double clic sur celui-ci en appuyant sur la touche MAJ du clavier, et du coup la macro ne s’exécute pas.

Y a t’il une possibilité de changer cette touche, car sinon c’est très facile de bloquer le démarrage d’une macro et donc, cela peut poser des problèmes??

Merci d’avance pour vos réponse.

Cordialement
Christophe


#2

Bonjour CMa,

Je suppose que cela doit pouvoir se faire, mais tu te doutes bien que sans fichier et ou le code, nous sommes aveugles.
Je pense que c’est une règle que tu dois comprendre :wink:.

@+
Cordialement.


#3

Bonjour mdo100

Merci pour ta réponse mdo100, oui je comprends.

Dsl je pensais qu’il y avait une solution pour modifier la combinaison Maj et double clic, pour adopter une combinaison perso, car cette combinaison est un truc natif d’Excel, et je pensais qu’elle était modifiable facilement, dans une option quelconque que je ne connaissais pas.

Je vous le faire sur tous les fichiers Excel que j’avais crée.

Cette nuit je récupère un fichier, et je le mettrai en pièce jointe.

Merci pour ta réponse.
Cordialement
@+
Christophe:wink:


#4

Bonjour

Si je comprends bien ton problème est plutôt de pouvoir forcer l’exécution d’une macro au démarrage?
Car si tu changes le raccourci Maj en A , B ou C il sera toujours aussi facile de bloquer l’exécution des macros…


#5

Bonjour DocteurExcel

Si j’aimerai bien changer le raccourci, car il n’y aurait que moi et un autre collègue qui le connaitrait et nous serions tranquille, car y a des petits malins qui connaissent ce raccourcis et bien sur l’utilise.
Il y a toujours un ou deux pour empêcher de tourner en rond… :relieved:
Donc je voulais juste savoir si cela était possible et comment?
style : Maj en A , B ,…

Car si je force l’exécution d’une macro, il en sera de même pour moi et je ne le souhaite pas. Avec un raccourci, elle est vite bloquée

Merci d’avance
Cordialement
@+
Christophe


#6

Pour des raisons de sécurité, il sera toujours possible de désactiver les macros.
Ce dont tu as besoin, c’est forcer l’activation des macros
En revanche, si tu veux obliger l’utilisateur à exécuter une macro au démarrage, tu peux:

  • Cacher toutes les données du fichier
  • Rétablir les données avec une macro qui se lance au démarrage

Ainsi l’utilisateur est obligé d’activer les macros et d’exécuter la macro de lancement pour pouvoir travailler avec le fichier.

Voici comment procéder pour créer un tel fichier:

  • Dans l’éditeur VBE ( Alt + F11) , cacher toutes les feuilles du fichier en leur affectant la propriété xlSheetVeryHidden dans le menu propriétés (raccourci F4 pour l’afficher)

  • Ajouter une page de garde avec un message demandant d’activer les macros

  • Ajouter la macro suivante:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sheets("Invisible sans macros").Visible = 2
   'A la fermeture du fichier, cacher tous les onglets
End Sub

Private Sub Workbook_Open()
    Sheets("Invisible sans macros").Visible = -1
    'A l'ouverture du fichier, afficher les onglets
End Sub

Bien sur il faut faire de même avec tous les onglets que tu veux masquer.
Voici un fichier d’exemple:

forcer les macros.xlsm (13,9 Ko)


#7

Bonsoir DocteurExcel

Merci pour cette info, je vais la tester la semaine prochaine car je suis en repos. Par contre vu que j’ai déjà des macros dans mes fichiers, je dois intégrer ces lignes?

Dommage que ce n’est pas possible de changer la combinaison des touches aux lancemant du fichier, je trouve que cela aurait plus correspondu à mes besoins et plus simple à mettre en place.

En tout cas MERCI BEAUCOUP pour cette idée que je vais creuser…

Cordialement
@+
Christophe


#8

Re DocteurExcel

Ta macro a l’air d’être bien de pouvoir forcer l’exécution des macros, comment l’intégrer à celle-ci :

'*** In the ThisWorkbook Module ***`

Private Sub Workbook_WindowActivate(ByVal Wn As Window)

'À l’ouverture du classeur, masque le ruban
Application.DisplayFullScreen = True
’À l’ouverture du classeur, masque les titres
ActiveWindow.DisplayHeadings = False
’A l’ouverture du classeur, masque les onglets
ActiveWindow.DisplayWorkbookTabs = False

End Sub

Private Sub Workbook_Activate()
Call ToggleCutCopyAndPaste(False)
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call ToggleCutCopyAndPaste(True)

'Restaurer le ruban
Application.WindowState = xlNormal
’Restaurer les titres
ActiveWindow.DisplayHeadings = True
’Restaurer les onglets
ActiveWindow.DisplayWorkbookTabs = True

End Sub

Private Sub Workbook_Deactivate()
Call ToggleCutCopyAndPaste(True)
End Sub

Private Sub Workbook_Open()
Call ToggleCutCopyAndPaste(False)
End Sub

Et comment MOI je pourrai avoir accès au fichier, sans lancer la macro, pour que je puisse MOI avoir accès aux copier/coller, par exemple

Merci d’avance DocteurExcel ou un autre membre.

Et désolé de vous embêter, et MERCI pour votre boulot
Cordialement
Christophe


#9

Bonsoir CMa, toutes et tous,
Bonsoir DocteurExcel,

CMa, J’intégrerais le code comme ceci:

'*** In the ThisWorkbook Module ***`			
		
Private Sub Workbook_WindowActivate(ByVal Wn As Window)			
			
'À l'ouverture du classeur, masque le ruban			
Application.DisplayFullScreen = True			
'À l'ouverture du classeur, masque les titres			
ActiveWindow.DisplayHeadings = False			
'A l'ouverture du classeur, masque les onglets			
ActiveWindow.DisplayWorkbookTabs = False			
			
End Sub			
			
Private Sub Workbook_Activate()			
Call ToggleCutCopyAndPaste(False)			
End Sub			
			
Private Sub Workbook_BeforeClose(Cancel As Boolean)			
Sheets("Invisible sans macros").Visible = 2			
   'A la fermeture du fichier, cacher tous les onglets			
Call ToggleCutCopyAndPaste(True)			
			
'Restaurer le ruban			
Application.WindowState = xlNormal			
'Restaurer les titres			
ActiveWindow.DisplayHeadings = True			
'Restaurer les onglets			
ActiveWindow.DisplayWorkbookTabs = True			
			
End Sub			
			
Private Sub Workbook_Deactivate()			
Call ToggleCutCopyAndPaste(True)			
End Sub			
			
Private Sub Workbook_Open()			
    Sheets("Invisible sans macros").Visible = -1			
    'A l'ouverture du fichier, afficher les onglets			
Call ToggleCutCopyAndPaste(False)			
End Sub			

Même conseil, fait d’abord un essai sur un fichier test.
DocteurExcel, me corrigera, si j’ai fais une erreur.

Pour le reste suis les conseils du début de DocteurExcel
Voici comment procéder pour créer un tel fichier:

•Dans l’éditeur VBE ( Alt + F11) , cacher toutes les feuilles du fichier en leur affectant la propriété xlSheetVeryHidden dans le menu propriétés (raccourci F4 pour l’afficher)

•Ajouter une page de garde avec un message demandant d’activer les macros

Bonne nuit :sleeping:

Cordialement.


#10

Bonsoir mdo et bonsoir à tous également

Désolé de ne pas avoir répondu avant, (suite à des soucis de santé…)
Merci beaucoup pour la solution, c’est vraiment très sympa, de votre part de me dépatouiller toutes ces lignes de macro.

Un grand MERCI à tous et particulièrement à mdo et DocteurExcel pour leur dévouement. :gift:

Cordialemnet
Christophe