Erreur code VBA selection multi onglet

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

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":confused:
si quelqu un à la solution

MErci
 

mutzik

XLDnaute Barbatruc
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
 

almas

XLDnaute Occasionnel
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:

pierrejean

XLDnaute Barbatruc
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
 

almas

XLDnaute Occasionnel
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!"
:confused::confused::confused:
 

pierrejean

XLDnaute Barbatruc
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:

almas

XLDnaute Occasionnel
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! ^^
 

Discussions similaires

Réponses
1
Affichages
461
Réponses
3
Affichages
557
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
331
Réponses
2
Affichages
443
Réponses
32
Affichages
1 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
473
Réponses
5
Affichages
364