Excel protége à ma place

Thibault98

XLDnaute Occasionnel
Bonsoir à tous,

Dans la colonne A de ma feuille j'ai soit "rien" soit "OK" je voudrai lorsque j'ouvre de nouveau mon classeur qu'Excel protège toute la ligne qui contient "OK" afin que certains petits malins ne viennent pas modifier mes infos.

Je précise que cette feuille pourrait être dupliquée et renommée plusieurs fois.

Bien sûr on peut réaliser cela manuellement mais automatiquement c'est quand même mieux.

Je pense qu'il y a 1 ou plusieurs cracks sur ce forum pour me trouver la solution.

Je vous en remercie par avance.

Thibault. :rolleyes:
 

Fred0o

XLDnaute Barbatruc
Re : Excel protége à ma place

Bonsoir Thibault98 et bienvenue sur le forum.

Voici un code à placer dans le code de ThisworkBook :
VB:
Private Sub Workbook_Open()
    Dim i
    ActiveSheet.Cells.Locked = False
    For i = 1 To [A65536].End(xlUp).Row
        If Cells(i, 1) = "OK" Then Range(i & ":" & i).Locked = True
    Next
    ActiveSheet.Protect
End Sub

Je n'ai pas mis de mot de passe mais tu peuxen adapter un à tes besoins mais attention, n'importe qui peut ne pas activer les macros ou bien lire le mot de passe si il est inscrit en dur dans le code.

A+
 
Dernière édition:

Ilino

XLDnaute Barbatruc
Re : Excel protége à ma place

BONJOUR FORUM ? BONJOUR fredoo
je pense qu'il ya un conflit du fichier rattaché avec le sujet du fil ????
merci
 

Pièces jointes

  • PW.xls
    30.5 KB · Affichages: 34
Dernière édition:

Fred0o

XLDnaute Barbatruc
Re : Excel protége à ma place

Bonsoir Ilino,

En effet, je n'aurais pas dû mettre de fichier. C'était une erreur. Merci de l'avoir signalée.

Au passage, ton code ne fonctionne pas car tu l'as placé dans la feuille et pas dans ThisWorkBook.

A+
 

Thibault98

XLDnaute Occasionnel
Re : Excel protége à ma place

Bonjour et merci,

J'ai fais plusieurs tests mon fichier et enregistré en format binaire sous Excel 2007 je me demande si le code sera le même ou s'il faut changer quelque chose ?

Dans le même cas de figure "OK" dans la colonne A mais cette fois on part sur des feuilles protégées à 100 % avec interdiction de sélectionner les cellules verrouillées avec un mot de passe "ER"
à chaque fois que l'on ouvre le classeur et qu'excel rencontre "OK" il déverrouille les cellules concernées de la colonne B,C,D,E c'est possible ?

Encore un très grand merci.
Dans l'attente d'une réponse je te souhaite une bonne journée.

A bientôt
Thibault
 

Fred0o

XLDnaute Barbatruc
Re : Excel protége à ma place

Bonjour Thibault98,

Je n'ai pas compris ceci :
J'ai fais plusieurs tests mon fichier et enregistré en format binaire sous Excel 2007 je me demande si le code sera le même ou s'il faut changer quelque chose ?

Je ne sais pas ce qu'est un fichier enregistré en format binaire (j'ai aussi EXCEL 2007 et format binaire, il ne connaît pas). En plus, je ne comprends pas la question.

Voici le code pour ta dernière demande :
VB:
Private Sub Workbook_Open()
    Dim i
    ActiveSheet.Unprotect ("ER")
    For i = 1 To [A65536].End(xlUp).Row
        If Cells(i, 1) = "OK" Then Range("B" & i & ":E" & i).Locked = False
    Next
    ActiveSheet.Protect ("ER")
End Sub

A+
 

Thibault98

XLDnaute Occasionnel
Re : Excel protége à ma place

Bonsoir Fred0o,

En ce qui concerne le format binaire, je fais 'fichier/enregistrer sous' puis je sélectionne 'fichier binaire' ; il est, parait-il, plus fiable que le format qui prend en charge les macros.

Pour la question que tu ne comprends pas, ce n'est rien car ton code fonctionne sur tous les formats.
Juste une dernière question, sur cette ligne, comment écris-tu dans la cas où on veut agir sur la colonne H,J,L,N Range("B" & i & ":E" & i).Locked = False ?

Merci encore,
Amitiés.

Thibault
 

Fred0o

XLDnaute Barbatruc
Re : Excel protége à ma place

Bonsoir Thibault98,

Voici le code à utiliser pour répondre à ta demande :
VB:
Private Sub Workbook_Open()
    Dim i
    ActiveSheet.Unprotect ("ER")
    For i = 1 To [A65536].End(xlUp).Row
        If Cells(i, 1) = "OK" Then Range("H" & i & ",J" & i & ",L" & i & ",N" & i).Locked = False
    Next
    ActiveSheet.Protect ("ER")
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 658
Messages
2 090 619
Membres
104 611
dernier inscrit
Kanette2024