Erreur code VBA selection multi onglet

  • Initiateur de la discussion Initiateur de la discussion almas
  • Date de début Date de début

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 !

almas

XLDnaute Occasionnel
Bonjour le Forum

J 'ai besoin d un petit coup de main sur un code que j 'ai récupéré

A la base il sert a masquer et protéger par un MP des colonnes d 'une feuille

Mais je veux l 'appliquer sur plusieurs feuilles et j 'arrive pas a modifier le code en conséquence (si c 'est possible ^^)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets(Array("Etat_Parc_VL(04)", "synthèse")).Range("O:Q").EntireColumn.Hidden = False Then
Sheets(Array("Etat_Parc_VL(04)", "synthèse")).Range("O:Q").EntireColumn.Hidden = True
End If
Sheets(Array("Etat_Parc_VL(04)", "synthèse")).Protect "jdj"
End Sub
Private Sub Workbook_Open()
reponse = InputBox("Saisir le mot de passe pour accès complet ou cliquer sur annuler", "Mot de passe")
If reponse <> "" And reponse = "jdj" Then
Sheets(Array("Etat_Parc_VL(04)", "synthèse")).Unprotect reponse
If Sheets(Array("Etat_Parc_VL(04)", "synthèse")).Range("O:Q").EntireColumn.Hidden = True Then
Sheets(Array("Etat_Parc_VL(04)", "synthèse")).Range("O:Q").EntireColumn.Hidden = False
End If
End If
End Sub

En rouge ce que j 'ai rajouter au code initial pour chaque ligne mais qui marche pas ^^
message d 'erreur : "Propriété ou méthode non géré par cette objet"😕
si quelqu un à la solution

MErci
 
Re : Erreur code VBA selection multi onglet

bonjour,

il vaut mieux faire un protect en premier et le hidden=true après

sinon
with Sheets("Etat_Parc_VL(04")
.Protect "jdj"
.Range("O:Q").EntireColumn.Hidden = true
end with

idem pour la feuille synthèse
s'il y a des messages d'alertes disant que les colonnes sont déjà masquées ou protégées,
appplication.displayalerts = false
et remettre à true à la fin
 
Re : Erreur code VBA selection multi onglet

merci mutzik pour ta reponse

mais j 'ai du mal m 'expliquer

le code fonctionne parfaitement avec 1 seul nom d 'onglet et moi je voulais le faire fonctionner sur plusieurs onglets et donc modifier le code pour nommer tous les onglets ou j 'aimerai que la macro s' applique
puisque le code s 'active a chaque SAV et est placé dans le thisworkbook

le code initial qui marche:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Etat_Parc_VL(04)").Range("O:Q").EntireColumn.Hidden = False Then
Sheets("Etat_Parc_VL(04)").Range("O:Q").EntireColumn.Hidden = True
End If
Sheets("Etat_Parc_VL(04)").Protect "jdj"
End Sub
Private Sub Workbook_Open()
reponse = InputBox("Saisir le mot de passe pour accès complet ou cliquer sur annuler", "Mot de passe")
If reponse <> "" And reponse = "jdj" Then
Sheets("Etat_Parc_VL(04)").Unprotect reponse
If Sheets("Etat_Parc_VL(04)").Range("O:Q").EntireColumn.Hidden = True Then
Sheets("Etat_Parc_VL(04)").Range("O:Q").EntireColumn.Hidden = False
End If
End If
End Sub
 
Dernière édition:
Re : Erreur code VBA selection multi onglet

Bonjour à tous

A tester:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Feuilles = Array("Feuil1", "Feuil2")
For n = LBound(Feuilles) To UBound(Feuilles)
If Sheets(Feuilles(n)).Range("O:Q").EntireColumn.Hidden = False Then
Sheets(Feuilles(n)).Range("O:Q").EntireColu mn.Hidden = True
End If
Sheets(Feuilles(n)).Protect "jdj"
Next
End Sub
 
Re : Erreur code VBA selection multi onglet

Bonjour pierrejean et bonjour le forum

ca fonctionne parfaitement et j 'ai appliqué a la 2eme partie du code.MERCI pierrejean
Mais voila;en informatique rien n 'est simple^^
j 'avais dans un module une petite macro qui me permettait d afficher la date de la dernière sauvegarde
mais comme j 'ai modifié le ThisWorkbook elle ne fonctionne plus ..snif..
je ne sais pas pourquoi?

macro pour sauvegarde placé dans un module:
Function DernièreSauvegarde()
Application.Volatile
DernièreSauvegarde = ThisWorkbook.BuiltinDocumentProperties("Last Save Time")
End Function

je tapais "=DernièreSauvegarde()" dans une cellule et j 'avais la date de la dernière SAV ....maintenant j 'ai "#valeur!"
😕😕😕
 
Re : Erreur code VBA selection multi onglet

Re

Curieux !!!

Chez moi cette fonction est parfaitement opérationnelle et je ne vois pas pourquoi elle serait affectée par les sub de thisworkbook
Teste en mettant ces dernières en commentaire et dis-nous
 
Dernière édition:
Re : Erreur code VBA selection multi onglet

incompréhensible...effectivement ça marche
j 'avais fait pourtant plusieurs essais et j 'avais à chaque fois #valeur! , et la j 'ai retapé la formule et ça marche ....bon ben 2 fois merci ^^et tous va parfaitement
top pierrejean! ^^
 
- 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
12
Affichages
228
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
144
Réponses
4
Affichages
177
Réponses
9
Affichages
202
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
170
Retour