Compatibilité macro

Daniel33

XLDnaute Nouveau
Bonjours à tous.
Je reviens vers vous pour un problème de macros.
J’ai, sur mes anciens documents Excel 7(office 95) des macros écrites avec le langage excel4
Ces macros fonctionnent bien sous excel 2007 en mode compatible, mais pour y accéder, il faut qu’elles soient placées sur une feuille macro dans un classeur ouvert.
Cependant, j’aimerais, comme dans excel7 avec le répertoire XLOUVRIR , que certaine macros soient accessible dés l’ouverture d’Excel. Voici, ci-dessous un exemple de petites macros pour lesquelles je souhaiterais avoir un accès permanent.
Ces deux macros (parmi tant d’autres) écrites en Excel4, permettent de protéger ou déprotéger le document actif et d’y attribuer un mot de passe, elles sont très pratique lorsqu’on veut accéder à certaines parties de document protéger par MP( pas besoin de se souvenir / rentrer le mot de passe manuellement).

protéger_ document (Ctrl+i)
=PROTEGER.DOCUMENT(VRAI;;"ad245j28v";VRAI)
=RETOUR()

Oter_protection(Ctrl+o)
=PROTEGER.DOCUMENT(FAUX;;" ad245j28v ";FAUX)
=RETOUR()

J’ai essayé d’enregistrer en langage VB, ces deux macros avec la fonction «enregistrer une macro». Résultat : Les deux macros fonctionnent, mais me demandent de rentrer le MP manuellement ce qui du fait n’offre aucun intérêt. Voir ci-dessous.

Sub essaiMP2()
'
' essaiMP2 Macro
'

'
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Sub essaiMP()


'
' essaiMP Macro
'

'
ActiveSheet.Unprotect
End Sub

Ma question : Ya-t-il un moyen pour que la macro prenne en compte un mot de passe.
Autre question Peut-on enregistrer des macros Excel4 dans la feuille Personal.xlsb. (j’en doute).
Merci pour votre aide.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Compatibilité macro

Bonjour Daniel,

Pour protéger avec MDP
Code:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, PassWord:="TOTO"

.. et pour déprotéger
Code:
ActiveSheet.UnProtect PassWord:="TOTO"

à+
Philippe
 

Daniel33

XLDnaute Nouveau
Re : Compatibilité macro

Re bonjours, c'est encore moi, J'ai bien suivi vos instructions, enfin je crois. J'ai également ajouté des raccourcis claviers, mais ils ne fonctionnent pas! Voir ci dessous la copie du fichier Macro.
J'appuie sur Ctrl+i ou Ctrl+j et rien ne se passe.

Si vous avez une idée sur ce problème.....?

Sub protection_document()
'
' protection_document Macro
'
' Touche de raccourci du clavier: Ctrl+i
'
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto"
End Sub
Sub oter_protection_document()
'
' oter_protection_document Macro
'
' Touche de raccourci du clavier: Ctrl+j
'
ActiveSheet.Unprotect passeword:="toto"
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Compatibilité macro

Re,

J'ai également ajouté des raccourcis claviers, mais ils ne fonctionnent pas!

le raccourci clavier doit être mentionné au début de l'enregistrement de la macro, après c'est trop tard

voici un exemple de macro créé avec l'enregistreur et pour laquelle j'ai imposé le j

Code:
Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+j
'
' la suite du code
' -------------------------------
MsgBox("Vous venez d'activer avec Ctrl+j
'
End Sub

la ligne:
' Touche de raccourci du clavier: Ctrl+j peut être supprimée, cela n'empêchera pas le code de réagir avec Ctrl+j

elle peut également être modifiée comme ceci: ' Touche de raccourci du clavier: Ctrl+blablabla mais elle pourra toujours être activée pas Ctrl+j

le fait d'entrer manuellement ' Touche de raccourci du clavier: Ctrl+j dans une macro existante sera sans effet, c'est au moment de l'enregistrement de cette macro qu'il fallait y penser

Si le fait d'utiliser l'enregistreur est dérangeant parce que les macros sont nommées Sub Macro1() Sub Macro2() Sub Macro3() ......................., il est possible de modifier en remplaçant Sub Macro1() par Sub Proteger()

à+
Philippe
 

Discussions similaires

Réponses
6
Affichages
191

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth