verrouiller tous les onglets

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

miguelangelo

XLDnaute Occasionnel
Bonjour à tous,

malgré avoir cherché dans les archives, j'ai du mal à trouver une réponse.

voilà un bout de code qui à partir d'un fichier excel en ouvre pls autres et doit les verrouiller.

Sub verouiller()
Dim fichier As String

code = InputBox(prompt:= _
"Renseigner le mot de passe pour verrouiller tous les onglets", _
Title:="Votre MDP")

If code = "" Then GoTo fin
Range("a15").Value = code 'je l'enregistre là pour l'instant pour pouvoir le visualiser

For Each c In Range("b24:b80") 'ouvre tous les fichiers dont les adresses sont présentes dans b24 à b80

If c = "" Then GoTo suivant

Range("b10") = Range("b6") & "\" & c 'me constitue l'adresse physique complète du fichier à ouvrir
fichier = Range("b10")
Workbooks.Open Filename:=fichier

Dim f As Worksheet

For Each f In ActiveWorkbook.Worksheets
f.Protect password:=code
Next f

ActiveWorkbook.Close savechanges = True

suivant:
Next c

fin:
End Sub
😕

résultat : rien est verrouillé... et pas d'erreur !! il fini comme si tout a été fait
Merci pour votre aide
 

Pièces jointes

  • capture.jpg
    capture.jpg
    32.8 KB · Affichages: 91
  • capture.jpg
    capture.jpg
    32.8 KB · Affichages: 101
  • capture.jpg
    capture.jpg
    32.8 KB · Affichages: 104
Dernière édition:
Re : verrouiller tous les onglets

Salut Miguelangelo

Essaye avec ce code légèrement optimisé et corrigé 😉
Code:
Sub verouiller()
  Dim Code As String, fichier As String
  Dim f As Worksheet, C As Range
  Code = InputBox(prompt:= _
                  "Renseigner le mot de passe pour verrouiller tous les onglets", _
                  Title:="Votre MDP")
  If Code <> "" Then
    Range("A15").Value = Code  'je l'enregistre là pour l'instant pour pouvoir le visualiser
    For Each C In Range("B24:B80")  'ouvre tous les fichiers dont les adresses sont présentes dans b24 à b80
      If C <> "" Then
        Range("B10") = Range("B6") & "\" & C  'me constitue l'adresse physique complète du fichier à ouvrir
        fichier = Range("B10")
        Workbooks.Open Filename:=fichier
        For Each f In ActiveWorkbook.Worksheets
          f.Protect Password:=Code
        Next f
        ActiveWorkbook.Close [COLOR=red][B]SaveChanges:=True[/B][/COLOR]
      End If
    Next C
  End If
End Sub

A+
 
Re : verrouiller tous les onglets

de nouveau,

pouvez vous m'indiquer une commande pour que tout soit fait en arrière plan. ?
on ne doit visualiser que le fichier excel d'origine ...

Sub verouiller()
Dim Code As String, fichier As String
Dim f As Worksheet, C As Range
Code = InputBox(prompt:= _
"Renseigner le mot de passe pour verrouiller tous les onglets", _
Title:="Votre MDP")
If Code <> "" Then
Range("A15").Value = Code 'je l'enregistre là pour l'instant pour pouvoir le visualiser
For Each C In Range("B24:B80") 'ouvre tous les fichiers dont les adresses sont présentes dans b24 à b80
If C <> "" Then
Range("B10") = Range("B6") & "\" & C 'me constitue l'adresse physique complète du fichier à ouvrir
fichier = Range("B10")
Workbooks.Open Filename:=fichier
For Each f In ActiveWorkbook.Worksheets
f.Protect Password:=Code
Next f
ActiveWorkbook.Close SaveChanges:=True
End If
Next C
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
869
Réponses
19
Affichages
1 K
Réponses
12
Affichages
673
Retour