Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[Excel] Demande d'aide sur fonction excel


francedemo

Messages recommandés

bonjour à tous,

 

je vous explique mon besoin:

 

sous excel XP:

je veux créer un modèle de feuille que je veux proteger pour éviter des modification involontaire (ou volontaire)

par contre, lors de l'utilisation, j'ai besoin que cette feuille soit déverrouillée lors de l'enregistrement pour pouvoir la modifier ultérieurement sans contraintes

 

la personne qui va utiliser ce modèle ne doit pas connaitre le mot de passe de déverrouillage

 

je compte utiliser une macro pour celà : "ActiveSheet.unprotect (password)", la problème que je rencontre, c'est que cette commande ne fonctionne pas lorsque je rentre le password, si je ne le mets pas dans la macro, il est demandé lors de l'enregistrement et là ça marche, mais je ne veut pas le communiquer à la personne qui va l'utiliser, c'est pourquoi j'ai besoin de le mettre directement dans la macro

 

le message d'erreur dit qu'il ne reconnait pas le password (vérifier l'utilisation de capslock...)

 

le fichier .xlt contient une seule feuille et n'est pas verrouillé, seule la feuille l'est

 

est ce que quelqu'un a déjà manipulé cette fonction ?

 

et si oui, quelle est la manip?

 

merci d'avance

Modifié par coolman
Lien vers le commentaire
Partager sur d’autres sites

Salut,

J'avoue que je ne comprends pas bien ta question.

tu veux que la feuille soit protégée tant qu'elle n'est pas ouverte et pas protégée quand ouverte? :P

ou bien tu veux être le seul utilisateur pour lequel la feuille n'est pas protégée?

 

il me semble que qqchose du genre :

 

Sub auto_open()

ActiveSheet.Unprotect ("toto")

End Sub

 

devrait te convenir.

le pb, c'est que tu dois rentrer ton mdp à chaque fois que tu vas fermer la feuille, ou alors faire une autre macro qui la protège à ce moment là...

 

Sub auto_close()

MsgBox "OK pour mettre la protection?"

ActiveSheet.Protect ("toto")

End Sub

 

enfin, je ne vois toujours pas l'intérêt... :P

 

edit : peut être :P

tu veux que le mdp soit enlevé juste au moment de la sauvegarde et remis après?

ça me parait plus compliqué à moins que tu obliges à passer par un bouton "Sauvegarde" particulier dans lequel tu ferais successivement le déverouillage, la sauvegarde puis la remise du mdp

Modifié par korentin
Lien vers le commentaire
Partager sur d’autres sites

bonjour Jorentin et merci de t'interresser à ma question

 

en fait, je veux creer un modele (.xlt) qui sera protégé pour eviter les modifications par d'autres personnes

 

lors de l'utilisation de ce modèle, la personne qui va entrer les données lancera une macro pour supprimer la protection et enregistrer le classeur déverrouillé. ceci pour permettre une modification ultérieure des données + insertion d'autres données

le déverrouillage du classeur (en .xls) ne me dérange pas puisque l'original reste bloqué

 

je vais donc mettre un bouton à cliquer lié à cette macro dans une barre d'outils pour cette personne

 

la macro sera, je pense, avec un ordre ActiveSheet.unprotect (password)

 

le problème sur lequel je tombe, c'est que les password de type lettre ne fonctionnent pas (message d'erreur avec capslock comme lors de l'ecran de suppression du mot de passe avec capslock bloqué)

 

par contre, j'ai fait des essais avec un password en chiffres et la tout est ok

 

est ce que tu as une explication sur l'utilisation d'un password en lettre ?

 

ensuite le souhaite faire l'enregistrement directement sur un emplacement réseau, mais je ne dois pas utiliser la bonne commande

 

je te mets ci dessous les commandes que j'utilise:

 

ActiveSheet.Unprotect (123)

ChDir "\\Servtms\DATA\CARDIO\ordonnancement\"

fileSaveName = Application.GetSaveAsFilename(\\Servtms\DATA\CARDIO\ordonnancement\AAAA.xls)

 

en fait, je veux simplement que la fenetre "enregistrer sous" s'ouvre et que cela soit directement sous"\\Servtms\data\cardio\ordonnancement\"

 

pour que la personne qui va utiliser ce modèle n'est plus qu'à entrer le nom de fichier et valider

 

j'espère que ces explications seront plus claires

 

merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

je vais donc mettre un bouton à cliquer lié à cette macro dans une barre d'outils pour cette personne

 

la macro sera, je pense, avec un ordre ActiveSheet.unprotect (password)

 

le problème sur lequel je tombe, c'est que les password de type lettre ne fonctionnent pas (message d'erreur avec capslock comme lors de l'ecran de suppression du mot de passe avec capslock bloqué)

 

par contre, j'ai fait des essais avec un password en chiffres et la tout est ok

 

est ce que tu as une explication sur l'utilisation d'un password en lettre ?

 

Ben là, non :P

Je suis sous Office2000 et je n'ai pas réussi à recréer ce pb.

Chez moi, que je mette dans la macro un mdp en lettres ou en chiffres, ça marche.

 

ensuite le souhaite faire l'enregistrement directement sur un emplacement réseau,

ActiveSheet.Unprotect (123)

A tout hasard, c'est peut être idiot mais, pour ta chaine de caractères, tu n'oublies pas les ""?

 

ChDir "\\Servtms\DATA\CARDIO\ordonnancement\"

fileSaveName = Application.GetSaveAsFilename(\\Servtms\DATA\CARDIO\ordonnancement\AAAA.xls)

 

je ne crois pas que tu puisses mettre le chemin dans le nom du fichier.

désolé si c'est un peu lourd mais il y a bien longtemps que je ne me suis plus plongé là dedans.

 

Si le chemin est toujours \\Servtms\DATA\CARDIO\ordonnancement\

je ferais :

 

chemin="\\Servtms\DATA\CARDIO\ordonnancement\"

nom_du_fichier = InputBox("Quel nom voulez vous donner à ce fichier?", "Sauvegarde", "Nom_par_defaut")

ActiveWorkbook.SaveAs (chemin & nom_du_fichier)

Lien vers le commentaire
Partager sur d’autres sites

pour le chemin d'acces, ça marche, je n'avais pas mis les guillemets....

 

pas de tete...

 

par contre, pour le password en lettre, ça ne veut pas fonctionner, j'ai essayé l'alphanumérique qui ne marche pas non plus, seul les chiffres fonctionnent

 

je vais chercher du coté des paramètres du clavier, je ne vois pas autre chose

 

les chiffres sont indépendant du capslock, donc il faut un password qui ne s'occupe pas de la casse

 

je ne vois pas où peut être ce paramètre

 

à +

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Bonjour, je ne sais pas si tu as eu une réponse depuis, mais si cela n'est pas le cas, je vais tenter de t'apporter un élément de réponse :

 

Pour protéger une feuille avec mot de passe intégré dans ta macrocommande, tu peux utiliser cette routine :

 

Sub proteger()

ActiveSheet.Protect password:=Motdepasse

End Sub

 

Sub deproteger()

ActiveSheet.Unprotect password:=Motdepasse

End Sub

 

Dans le cadre où tu posséde plusieur feuille à protéger ... et dans le cadre où tu veux cacher ton mot de passe dans la feuille elle même tu peux faire un truc de ce genre :

 

Sub proteger()

Application.ScreenUpdating = False 'cette fonction permet de figer l'écran pour ne pas voir ce qu'il se passe

For I = 1 To Sheets.Count ' là tu mets un compteur pour totaliser le nombre total des feuilles du classeur

Sheets(I).Activate ' là tu active les feuilles une à une

Range("A1").Activate

ActiveSheet.Protect password:=Feuil1.Range("A1").Value, UserInterfaceOnly:=True 'là tu protége tes feuilles avec un mot de passe contenu dans la feuil1 en cellule "A1"

Next I

Feuil6.Activate ' là tu focalise l'activation de la feuille 6

Application.ScreenUpdating = True ' là tu arrêtes le figeage de l'écran

End Sub

 

Sub deproteger()

Application.ScreenUpdating = False

For I = 1 To Sheets.Count

Sheets(I).Activate

Range("A1").Activate

ActiveSheet.Unprotect password:=Feuil1.Range("A1").Value

Next I

Feuil6.Activate

Application.ScreenUpdating = True

End Sub

 

 

Pour protéger une feuille ou classeur par macrocommande et pouvoir faire des actions tout en la laissant portégée, tu peux utiliser :

 

Worksheets("Feuil1").Protect password:=Motdepasse, UserInterfaceOnly:=True UserInterfaceOnly:=True

 

 

Voilà quelques pistes de recherche...

 

Je ne sais pas si cela t'aidera, mais ce fût avec plaisir !!!

 

Cordialement

 

:P

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...