Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1291 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Vérouiller les modification de données dans mes feuilles Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vérouiller les modification de données dans mes feuilles Excel

n°1949524
tchauoui
Posté le 11-12-2009 à 15:54:50  profilanswer
 

Bonjour,
 
J'ai crée mes fichiers avec toutes mes macros.
Je souhaite vérouiller les modifications sur certaines cellules et sur le format également.
 
Comment puis vérouiller l'acces à mes macros également
 
Le fichier va être mis à disposition d'un équipe.
 
 
Comment puis-je faire?
 

mood
Publicité
Posté le 11-12-2009 à 15:54:50  profilanswer
 

n°1949722
Laoo
Posté le 12-12-2009 à 10:40:06  profilanswer
 

Bonjour,  
 Voici une macro simple mais efficace dans un premier temps,
 
sinon, tu as aussi des macros sur ce sujet dans un autre post: "Mot de passe feuille excel"  qq lignes + bas  
 
 

Code :
  1. Private Sub Workbook_Open()
  2. Application.EnableCancelKey = xlDisabled        'En 1° ligne, pour éviter que le code ne s'affiche en cas d'interruption de la macro ou si on appuie sur                                 '     'Escape!
  3. Dim MotDePasse As String
  4.     ThisWorkbook.Sheets("Feuil1" ).Activate                    'la Feuil1 est la feuille d'accueil, par exemple
  5. 1     MotDePasse = InputBox("Veuillez entrez votre Mot de Passe.   " & Chr(10) & Chr(10) & "Il vous reste " & 4 - COMPTE & " essais.", _
  6.                     "Mot de Passe exigé", 111)
  7.       If Not MotDePasse = "AA" Then        'tu changeras ces MotDePasse  après avoir inscrit les nouveaux ds tes tablettes!
  8.     COMPTE = COMPTE + 1
  9. If COMPTE >= 4 Then GoTo 2     après 4 essais, la macro va au 2 et ferme le classeur
  10. GoTo 1                      'avant 4 essais, la macro  recommence en 1
  11. Else
  12.           ThisWorkbook.Sheets("Feuil3" ).Activate  'par exple
  13. End If
  14. ''''''''''''''''''''''''''''''''''''''''''''
  15. Exit Sub          'Fin de la macro si mot de passe correct, sinon fermeture du classeur sans enregistrement ni alertes:
  16. 2  Application.DisplayAlerts = False
  17.   ActiveWorkbook.Close
  18. End Sub


 
Et cette macro qui donne accès à la feuille 1, mais pas à la feuille2 sans mot de passe    (AA aussi, tt cela à changer selon tes souhaits).

Code :
  1. Private Sub Workbook_sheetactivate(ByVal sh As Object)  'à chaque changement de feuille
  2.   Application.EnableCancelKey = xlDisabled     
  3. Dim MotDePasse As String
  4. If sh.Name = "Feuil2" Then
  5. Application.EnableEvents = False     'évite que la macro recommence au début à chaque cht de page
  6.     ThisWorkbook.Sheets("Feuil1" ).Activate  'on va en Feuil1 en attendant l'accès à Feuil2
  7. MotDePasse = InputBox("Par précaution, l'accès à la feuille ""Feuil2"" est réservé. " & Chr(10) & Chr(10) & "Entrez votre Mot de Passe.", _
  8.                     "Mot de Passe exigé" )
  9.     If Not MotDePasse = "AA" Then
  10.     MsgBox "Le Mot de Passe saisi est incorrect."
  11.     Else: ThisWorkbook.Sheets("Feuil2" ).Activate
  12.     End If
  13. End If
  14.    
  15. Application.EnableEvents = True
  16. End Sub


 
A suivre


---------------
Olympus OM-D  EM-5 + 14-42
n°1949724
Laoo
Posté le 12-12-2009 à 10:46:57  profilanswer
 

Ces macros sont à mettre dans la feuille "ThisWorkbook".
 
Je te conseille d'enregistrer une copie de ton classeur nommée ZZZessais.xls, le temps de bien mettre ces macros de restrictions en place , car si tu verrouilles le bon par malheur, tu n'y auras plus accès...

n°1949730
galopin01
Posté le 12-12-2009 à 11:39:53  profilanswer
 

tchauoui a écrit :


 
Comment puis vérouiller l'acces à mes macros également
 


Bonjour,
Pour verrouiller les macros :
Dans le menu VBA Outils / Propriétés de VBA Project + Onglet Protection...
 
Nota : Cette protection ne protège que contre la maladresse ou la bêtise... Il n'existe aucune protection contre les c... mal intentionnés !
 
A+

n°1949913
tchauoui
Posté le 13-12-2009 à 21:09:46  profilanswer
 

Ok merci pour vos réponses bien utiles.
Je teste et je vous tiens au courant.

n°1949915
tchauoui
Posté le 13-12-2009 à 21:26:09  profilanswer
 

Bonjour,  
Pour verrouiller les macros :  
Dans le menu VBA Outils / Propriétés de VBA Project + Onglet Protection...  
 
 
Je suis sous Vista et sous Excel 2007 et je ne trouve pasla fonction pour cacher ou vérouiller l'acces aux Macros.
J'ai fais Afficher/Macros/Affichage des macros et je n'ai rien qui me permette des les cacher ou de bloquer leur modifications.

n°1949921
tchauoui
Posté le 13-12-2009 à 22:03:21  profilanswer
 

Je suis coincé et je ne sais pas pourquoi.
 
Voic mon code, mon premier onglet s'appelle "Extraction" mon deuxième s'appelle "Mapping". Mon mot de de passe est 123.
 
Sub acces_restreint()
 
Private Sub Workbook_sheetactivate(ByVal sh As Object)
  Application.EnableCancelKey = xlDisabled
Dim MotDePasse As String
If sh.Name = "Mapping" Then
Application.EnableEvents = False
 
    ThisWorkbook.Sheets("Extraction" ).Activate
 
MotDePasse = InputBox("Par précaution, l'accès à la feuille ""Feuil2"" est réservé. " & Chr(10) & Chr(10) & "Entrez votre Mot de Passe.", _
                    "Mot de Passe exigé" )
    If Not MotDePasse = "AA" Then
    MsgBox "Le Mot de Passe saisi est incorrect."
    Else: ThisWorkbook.Sheets("Mapping" ).Activate
    End If
End If
   
Application.EnableEvents = True
 
End Sub
End Sub

n°1949924
Laoo
Posté le 13-12-2009 à 22:21:23  profilanswer
 


Bonsoir
 
Essaie peut-être ça:
 
Dans le Visual Basic Editor (le précieux bréviaire où on enregistre nos petites prières) (Alt+F11),  clic DROIT sur le nom du projet à protéger, puis clic sur propriétés de VBA projo(----, onglet Protection, coche "Verrouiller le projet pour l'affichage", enregistre le mot de passe (qui apparaît en étoiles) que tu auras soigneusement choisi, appris, et SURTOUT NOTE-LE AVANT dans un endroit accessible de façon claire pour toi, mais cachée pour les autres. Attention, après ça, impossible (sauf aux pirates) d'ouvrir les macros du fichier sans le code.   (Ca marche pour XL 2002 SOUS XP)
 
Tiens-nous au courant.
 
Bye
 
 
 
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1949925
Laoo
Posté le 13-12-2009 à 22:22:54  profilanswer
 

ce post faisait suite à ton précédent message.

n°1949928
Laoo
Posté le 13-12-2009 à 22:31:26  profilanswer
 

tchauoui a écrit :

Je suis coincé et je ne sais pas pourquoi.


 
 
Tu es coincé où et comment? Dès le début, en cours de route?
 
Essaie de faire une macro :

Code :
  1. sub rien()
  2. Application.EnableEvents = True
  3. End Sub


A+


---------------
Olympus OM-D  EM-5 + 14-42
mood
Publicité
Posté le 13-12-2009 à 22:31:26  profilanswer
 

n°1949934
tchauoui
Posté le 13-12-2009 à 23:24:00  profilanswer
 

Ok pour protéger mes macros, ça fonctionne.
Il mes reste mon soucis de pourvoir autoriser la copie des données de ma feuille A dans ma feuille B.
Ma feuille B doit être protégée à la saisie.
 
Laoo j'i vu ton code mais je ne parvien pas à le faire marcher
Je coince des le début du début.

n°1949935
tchauoui
Posté le 13-12-2009 à 23:32:18  profilanswer
 

Des que je verouille ma feuille n°2, il m'empêche de copier mes données de ma feuille 1 vers ma feuille 2.
Et j'ai du coup l emême problème pour mes autres feuilles.
Je ne comprens pas cette partie de ton code :
MotDePasse = InputBox("Par précaution, l'accès à la feuille ""Feuil2"" est réservé. " & Chr(10) & Chr(10) & "Entrez votre Mot de Passe.", _  
                    "Mot de Passe exigé" )  
    If Not MotDePasse = "AA" Then  
    MsgBox "Le Mot de Passe saisi est incorrect."  
 
Textuellement que dois-je enlever?
Est-ce cette partie ci?
Par précaution, l'accès à la feuille ""Feuil2"" est réservé. "
 

n°1949938
tchauoui
Posté le 13-12-2009 à 23:42:47  profilanswer
 

Mon code est le suivant et le bloque à GO TO 1 Else.
Sub Restriction_Accès()
Private Sub Workbook_Open()
Application.EnableCancelKey = xlDisabled
Dim MotDePasse As String
ThisWorkbook.Sheets("Extraction" ).Activate
MotDePasse = InputBox("Veuillez entrez votre Mot de Passe.   " & Chr(10) & Chr(10) & "Il vous reste " & 4 - COMPTE & " essais.", _
"Mot de Passe exigé", 123)
If Not MotDePasse = "AA" Then
COMPTE = COMPTE + 1
If COMPTE >= 4 Then GoTo 2      GoTo 1 Else
ThisWorkbook.Sheets("Mapping" ).Activate
End If
''''''''''''''''''''''''''''''''''''''''''''
Exit Sub          '
Application.DisplayAlerts = False
ActiveWorkbook.Close

n°1949939
Laoo
Posté le 14-12-2009 à 00:07:41  profilanswer
 


Le libellé de l'InputBox n'a pas d'importance, seul ce que tu rentres dedans compte et doit être conforme à MotDePasse, ici AA.  
 
essaie de changer:
   If Not MotDePasse = "AA" Then  
par
If MotDePasse <> "AA" Then  
 
sait-on jamais?
D'autre part, je ne comprends pas pourquoi tu mets une macro autour de la private:
 

Code :
  1. Sub acces_restreint()
  2. Private Sub Workbook_sheetactivate(ByVal sh As Object)


Est-ce autorisé (et conseillé)?
 
Je ne me souviens plus bien de ton projet, il faut que je me replonge dedans pour voir si j'en sors qq chose de nouveau? et je ne suis pas expert ès-verrouillage...  et peut-être pas ce soir, il est tard...    :sleep:  


---------------
Olympus OM-D  EM-5 + 14-42
n°1949941
Laoo
Posté le 14-12-2009 à 00:25:48  profilanswer
 

Encore une fois on s'est croisés!
 

tchauoui a écrit :

Mon code est le suivant et le bloque à GO TO 1 Else.
 
MotDePasse = InputBox("Veuillez entrez votre Mot de Passe.   " & Chr(10) & Chr(10) & "Il vous reste " & 4 - COMPTE & " essais.", _
"Mot de Passe exigé", 123)
If Not MotDePasse = "AA" Then


Il faut se mettre d'accord, si ton mot de passe est 123, tu ne dois pas l'inscrire dans ton message (sauf au début pour t'en souvenir, si tu veux)
et d'autre part tu dois écrire:

Code :
  1. If Not MotDePasse = "123" Then
  2.                         'ou mieux:
  3. If MotDePasse  <> "123" Then
  4. et non pas: If Not MotDePasse = "AA" Then


Ensuite:

Citation :

COMPTE = COMPTE + 1
If COMPTE >= 4 Then GoTo 2      GoTo 1 Else
ThisWorkbook.Sheets("Mapping" ).Activate
End If
''''''''''''''''''''''''''''''''''''''''''''
Exit Sub          '
Application.DisplayAlerts = False
ActiveWorkbook.Close


 
Bien sûr, tout est à l'envers!
 
écris ceci:
 

Code :
  1. If COMPTE >= 4 Then
  2.    GoTo 2
  3.      Else 
  4. GoTo 1
  5. ThisWorkbook.Sheets("Mapping" ).Activate
  6. End If


A+
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1949946
Laoo
Posté le 14-12-2009 à 00:57:17  profilanswer
 

j'écris par épisodes, mais parce que j'écris au fur et à mesure de ma réflexion, un peu lente, et surtout ralentie par ce viex PC qui n'avance pas. vivement le nouveau!
 
Bon, dis-moi, c'est bien gentil de mettre des GOTO et des numéros, mais il faudrait les inscrire dans ton texte, sinon XL va se fâcher tout rouge, te les réclamer et se mettre encore en grève!
 
et puis le   GoTo 1  doit venir après l'autre action, bien sûr, sinon elle est shintée.

Code :
  1. If COMPTE >= 4 Then
  2.    GoTo 2
  3.      Else
  4. ThisWorkbook.Sheets("Mapping" ).Activate
  5. GoTo 1
  6. End If


J'ai compris!! Tu veux afficher une feuille 1 ou 2 en utilisant GOTO !!  Ô Misère! Non. GOTO est un mot clé qui renvoie à la balise indiquée que tu places dans le texte de la macro, pour aller plus haut ou plus bas, selon les circonstances.  je t'enverrai demain un exemple. En attendant il faut organiser ça dans ta macro!
 


---------------
Olympus OM-D  EM-5 + 14-42
n°1949954
seniorpapo​u
Posté le 14-12-2009 à 07:01:36  profilanswer
 

Pour confirmer ce qu'à dit galopin01, je viens de recevoir ça ce matin:
 
http://www.vbfrance.com/codes/OTER [...] 50949.aspx
 
Cordialement

n°1949959
Laoo
Posté le 14-12-2009 à 07:55:37  profilanswer
 

Euh, Bonjour?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Vérouiller les modification de données dans mes feuilles Excel

 

Sujets relatifs
message différé via excelCopier/coller uniquement les cellules visbles d'un tableau Excel
Importer structure et données access dans WindevURGENT - Modification des paramètres par défaut d'un graphique croisé
gerer une base de données access avec des codes barresMacro onClick copy/paste Excel
Problème de génération de fichier excel sous easyPHP 1.8Excel: création mail automatique
Base de données sur Excel 
Plus de sujets relatifs à : Vérouiller les modification de données dans mes feuilles Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR