Ajuster un macro, commande "toutes les feuillles"

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Pour autoriser que des menus déroulants fonctionnent même après le verouillage des feuilles, j'utilise ce macro:

Private Sub Workbook_Open()
feuille = Array('Feuil1', 'Feuil2', 'Feuil3')
For i = 0 To UBound(feuille)
With Sheets(feuille(i))
.EnableOutlining = True
.EnableSelection = xlUnlockedCells
.Protect Password:='tutu', UserInterfaceOnly:=True
End With
Next i
End Sub


Je voudrais avoir le bon code pour ne plus devoir introduire manuellement le nom des feuilles (Feuil1, Feuil2, Feuil3 etc), donc que le macro prenne en charge automatiquement toutes les feuilles du classeur, n'importe leur nom.

Merci pour toute aide,
Mi
 

Rai

XLDnaute Junior
Re:Ajuster un macro, commande "toutes les feuillle

Bonjour,

Ton code est bon, pour son amélioration il suffit de prendre en compte 2 éléments :
- on peut aussi désigner une feuille par son N° d'ordre dans le classeur - Sheets(N°)
- Il, en VBA, existe une propriété permettant de compter le nombre d'éléments d'une collection - .Count

Appliqué à ton code cela donnera :

Private Sub Workbook_Open()
For i = 1 To ThisWorkbook.Sheets.Count
With Sheets(i)
.EnableOutlining = True
.EnableSelection = xlUnlockedCells
.Protect Password:='tutu', UserInterfaceOnly:=True
End With
Next i
End Sub

Bon début de semaine.
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re:Ajuster un macro, commande "toutes les feuillle

Bonjour

une autre solution ressemblante

Private Sub Workbook_Open()

For each ws in worksheets
With ws
.EnableOutlining = True
.EnableSelection = xlUnlockedCells
.Protect Password:='tutu', UserInterfaceOnly:=True
End With
Next
End Sub

Bonne journée
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:Ajuster un macro, commande \"toutes les feuillle

Bonjour Rai, Mi_, le Forum

Juste une petite note en ce qui concerne la collection de Feuilles.

Il y a longtemps, mon ami Vériland, en voyant un de mes codes me posait la question :

Quelle différenrence entre Sheets & WorkSheets dans une collection...

La réponses est :
Sheets intégrera tous les Onglets, que ce soit Sheets ou Charts ou DialogSheets...
WorkSheets n'intègrera que des Sheets (Feuilles)

Par conséquent faire attention si vous avez des Charts dans le classeur... Car la boucle ci-dessous risque de ne pas apprécier pour 'xlUnlockedCells' sur un Graph...

Bonne Journée
@+Thierry

EDITION !!!

Bonjour Pascal, t'avais pas vu, mais tu mets WorkSheets !!!
Post - 9 !!!

Message édité par: _Thierry, à: 11/04/2005 08:24

EDITION !!!

Mais tu déclares pas WS as WorkSheet !!!!!

Message édité par: _Thierry, à: 11/04/2005 08:25
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re:Ajuster un macro, commande "toutes les feuillle

Salut Thierry

Et oui je me souviens d'un fil sur l'ancien forum où on avait discuté de cette différence sheets et worksheets

Donc maintenant il essaie de faire attention le Pascal et donc dans ce cas je boucle que sur les worksheets.

Bonne journée
 

Mi_

XLDnaute Occasionnel
Re:Ajuster un macro, commande "toutes les feuillle

Bonjour Rai, Pascal76, _Thierry, le forum

Merci de vos conseils et de vos lignes de code. Ca marche parfaitement maintenant. En fait j'avais 60+ feuilles dans un classeur, et introduire tous les noms des feuilles à la main, brrrr.

A bientôt sur le forum,
Mi
 

Discussions similaires

Statistiques des forums

Discussions
313 032
Messages
2 094 576
Membres
106 054
dernier inscrit
Mohajer