excel 2003 remplacer nom dans macro

casamartin

XLDnaute Junior
Bonjour les poilus, c'est l'imberbe qui revient

J'ai gilsser un mot de passe dans certaines macros pour déprotéger et reprotéger les fichiers originaux pour modification par le responsable.
Malheureusement, je me vois mal remplacer, macro par macro le mot de passe.
Existe t'il la possibilité de le faire par macro.
Merci de comprendre ma détresse.
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Merci Luky Luke pour ta réponse, c'est une solution pour moi même, mais je voudrais de préférence, mettre le mot de passe dans une cellule d'une feuille cachée accessible par le responsable de la société qui n'y connait rien en macro.
Par exemple remplacer le mot de passe par un code d'accés à cette cellule.
Penses tu que cela soit possible ?
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

N'ayant pas de réponse, je pose la question différemment:
Dans le code de protection
ActiveSheet.Protect "Motdepasse"
Pouvons nous remplacer le mot de passe avec un coller de la valeur d'une cellule que l'on dans au préalable enregistré dans le presse-papier.
Ceci est irréalisable manuellement, de plus en génération automatique de la protection il ne met que le bout de code ActiveSheet.Protect
et à vous de saisir entre guillemets le mot de passe.
Existe t'il un autre méthode par macro pour modifier une autre macro, ou est ce encore verrouillé?
Merci de me répondre oui ou non.
Sinon je me rabatterais vers la solution de Pierrot.
 

Pierrot93

XLDnaute Barbatruc
Re : excel 2003 remplacer nom dans macro

Re,

tu as aussi une autre possibilité, c'est d'utiliser une constante publique, dans ce cas il n'y aura qu'un endroit ou modifier ton mot de passe, exemple ci-dessous, à placer en tête d'un module standard, ensuite partout dans ton code tu fais référence à la constante "mdp" qui contiendra ton mot de passe...

Code:
Option Explicit
Public Const mdp As String = "ModDePasse"
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Ca me parait déjà beaucoup plus intéressant, je vais testé.

Par contre il y a peut être une autre possibilité, c'est de générer dans une cellule par la formule concatener la ligne de code <ActiveSheet.Protect "Motdepasse">
Je vais testé aussi, je te rendrais compte des résultats
Merci.
 

ROGER2327

XLDnaute Barbatruc
Re : excel 2003 remplacer nom dans macro

Bonjour à tous
Dans le classeur joint la feuille Feuil1 est protégée. Le mot de passe (initialement toto) est dans une feuille cachée.
Lors de l'activation de la feuille, le mot de passe est demandé. S'il est incorrect la feuille reste protégée. S'il est correct, la feuille n'est plus protégée. Il est proposé à l'opérateur de confirmer ou de modifier le mot de passe. Il suffit de cliquer OK pour conserver le mot de passe en cours, ou d'en changer et de cliquer sur OK.
C'est évidemment une protection faible (LibreOffice n'est pas fait pour les chiens…)​
ROGER2327
#5188


Lundi 9 Clinamen 138 (Sainte Trique, lunatique, SQ)
11 Germinal An CCXIX
2011-W13-4T14:56:40Z
 

Pièces jointes

  • Feuille_protégée_160758.xls
    16.5 KB · Affichages: 42
Dernière édition:

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Je reviens vers Pierrot, si j'ai bien compris la solution la plus rapide c'est ton petit bout de code
Option Explicit
Public Const mdp As String = "ModDePasse"
qui m'enchante le mieux.
Par contre comment placer la reprise du code que je n'ai jamais utilisé, je n'ai que 15 jours de formation autodidacte à mon actif.
Voici une petite macro simplifiée en exemple:

Sub sauvegarde_tarif()
'Protège, sauve et quitte classeur1
'
Option Explicit
Public Const mdp As String = "ModDePasse"
Application.ScreenUpdating = False
Windows("classeur1.xls").Activate
Sheets("feuil1").Select
ActiveSheet.Protect "Motdepasse"
Sheets("feuil2").Select
ActiveSheet.Protect "Motdepasse"
With ActiveWindow
.Top = 1.75
.Left = 547
.Width = 384
.Height = 525
End With
ActiveWorkbook.Protect "Motdepasse", Structure:=True, Windows:=True
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

Si tu pouvais me modifier pour que ça marche ce serait Super. Merci d'avance de perdre un peu de temps aux ânes du forum.
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Rebonjour à tous

Je pédale encore dans le vide pour mon problème de mot de passe

j'ai inclus dans le thisworkbook du fichier personal

Private Sub Workbook_Open()
mdp = Application.InputBox("Tapez le mot de passe commun à toutes les procédures.", "motde passe", Type:=2)
End Sub

j'inclus en début de procédure dans chaque module concerné le code:
Sub protection()
Public mdp As String
'modèle de procédure
'protection classeur1.

Public mdp As String
Windows("classeur1.xls").Activate
Sheets("Feuil1").Select
ActiveSheet.Protect
ActiveWorkbook.Protect , Structure:=True, Windows:=True
End Sub

Erreur de compilation, attribut incorrectdans une procédure ou fonction Sub

JJe suis le dernier de la classe.
 

Pierrot93

XLDnaute Barbatruc
Re : excel 2003 remplacer nom dans macro

Bonjour casamartin, Roger,

pour répondre à ton post d'hier, que je n'avais point vu... je modifierais ainsi :

Code:
Option Explicit
Public Const mdp As String = "ModDePasse"
Sub sauvegarde_tarif()
'Protège, sauve et quitte classeur1
'
Application.ScreenUpdating = False
Windows("classeur1.xls").Activate
Sheets("feuil1").Select
ActiveSheet.Protect mdp 
Sheets("feuil2").Select
ActiveSheet.Protect mdp 
With ActiveWindow
.Top = 1.75
.Left = 547
.Width = 384
.Height = 525
End With
ActiveWorkbook.Protect mdp , Structure:=True, Windows:=True
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

bonne journée
@+

Edition : pour rappel, ce code est à placer dans un module standard..
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Un grand merci, le plus vieux des ânes à encore fait des progrés, ça va drôlement alléger mes mes modofications.

Une question compémentaire pour alléger encore mes macros.

J'ai deux groupes de macros pour protection,fermeture et pour ouverture,déprotection pour chaque classeur qui se ressemblent.
Si je veux appliquer sur l'ensemble des classeurs, il y a t'il une autre possibilité que de recopier l'ensemble des commandes du groupe dans une seul macro.
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Toutes mes macros sont dans le fichier PERSONAL qui se trouve caché dans le répertoire de travail de chaque PC portable et en réseau sur le site dans un répertoire commun ou les terminaux ont le même paramétrage d'écran.
Chaque PC n'à pas le même paramètrage d'écran, j'ai donc crée par macro, un paramètrage de zoom différent pour chaque PC, donc autant de fichier PERSONAL qu'il y a de PC différents .
Le programme de travail comporte 11 classeurs avec 2 à 5 feuilles par classeur.
losque je fait des modifications sur le programme à cause des liaisons, je suis obligé de déprotéger sois l'ensemble, soit un classeur particulier.
Je repose donc la question différemment.
Puis je enchaîner les macros avec un seul bouton de commande sans recréer une macro complète.
 

Pierrot93

XLDnaute Barbatruc
Re : excel 2003 remplacer nom dans macro

A, noter, pour ne pas avoir à protéger / déprotéger des feuilles de calcul et que le code puisse s'exécuter quand même, protéger les feuilles par le code en utilisant l'argument "userinterfaceonly" :

Code:
Option Explicit
Private Sub Workbook_Open()
Feuil1.Protect "toto", userinterfaceonly:=True
End Sub
 

casamartin

XLDnaute Junior
Re : excel 2003 remplacer nom dans macro

Encore un grand merci, ça fonctionne trés bien pour mon test sur un classeur vierge.

A qoi sert <userinterfaceonly:=True>, est ce les critères standards de protection, car je n'est pas les mêmes partout, auquel cas il faudrais que je varie la protection en fonction de la feuille.

Je sauvegarde l'ensemble de mon programme dans un autre répertoire pour travailler l'évolution avec des classeurs non protégés
Dés le programme mis à jour, j'inclus dans le Thisworkbook
de chaque classeur cette petite macro.
Option Explicit
Private Sub Workbook_Open()
, Les codes de paramétrages particuliers d'écran
ActiveWorkbook.Protect "MdP", Structure:=True, Windows:=True
Feuil1.Protect "MdP", userinterfaceonly:=True
Feuil2.Protect "MdP", userinterfaceonly:=True
End Sub

Je vais aussi redistribuer mes macros dans les classeurs et feuilles et ne garder dans le personal que les macros générales affectées à l'ensemble des classeurs
 

Discussions similaires

Réponses
26
Affichages
531

Membres actuellement en ligne

Statistiques des forums

Discussions
312 612
Messages
2 090 227
Membres
104 453
dernier inscrit
benjiii88