Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : verrouillage de 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 forum, bonjour à tous

Voilà qq lignes de codes qui me permettent d'ouvrir un fichier present sur ma machine et de verrouller tous les onglets selon un code qu'il me demande.
mon probleme (qui se trouve je pense en zone rouge) c'est qu'il me verrouille les onglets du fichier dans lequel je me trouve et non pas celui que j'ai fais ouvrir.

en fait à l'ouverture du dis fichier, je n'arrive pas à l'activer.


Sub verouiller()


Application.ScreenUpdating = False

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 End

Application.Run "ouvre"
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
If C.Offset(0, 1) = "o" Then GoTo suivant
If C.Offset(0, 1) = "closed" 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

Windows(fichier).Activate

For Each f In Worksheets

f.Range("Ab1584").Value = Code 'je l'enregistre là pour l'instant pour pouvoir le visualiser

f.Protect Password:=Code
Next f
Sheets("lisez moi").Select
ActiveWorkbook.Close SaveChanges:=True

C.Offset(0, 1).Value = "closed"

suivant:
Next C

Application.Run "ferme"
Application.ScreenUpdating = True
End Sub
 
Re : VBA : verrouillage de tous les onglets

Bonjour,

en principe le dernier fichier ouvert est actif.... perso j'utiliserais une variable pour me référer à ce fichier, essaie le code ci-dessous à utiliser de préférence dans un module standard :

Code:
Dim wb As Workbook, f As Worksheet
Set wb = Workbooks.Open(Filename:=fichier)
For Each f In wb.Worksheets
    'ton code
Next f

bonne journée
@+
 
- 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
5
Affichages
612
Réponses
2
Affichages
287
Réponses
5
Affichages
549
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…