masquer quadrillage et autres

  • Initiateur de la discussion titus
  • Date de début
T

titus

Guest
Bonjour

Comment optimiser le code ci-dessous
Application.DisplayFormulaBar = False
Application.ScreenUpdating = False
For Each ws In Worksheets
ws.Activate
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Next ws

(le but étant qu'au démarrage d'un classeur il n'y est pas d'affichage de la barre de formule et pas d'affichage du quadrillage et des entêtes de lignes et de colonnes et ce pour toutes les feuilles du classeur)
 
S

Sebb

Guest
Salut

essaie ceci

___________________________________________
Private Sub Workbook_Open()
Dim ws as object
'
Application.DisplayFormulaBar = False
Application.ScreenUpdating = False
For Each ws In Worksheets
ws.Activate
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Next ws
Application.ScreenUpdating = True
End Sub
 
T

titus

Guest
Le problème c'est le temps d'exécution de la macro
si le classeur contient beaucoup de feuilles

N'est 'il pas possible d'utiliser un truc du genre

Sub Workbook_Open()
With ThisWorkbook.Sheets
.DisplayGridlines=False
.DisplayHeading=False
End With
End Sub

Est-il obligatoire d'activer les feuilles?
 
T

titus

Guest
Oui à la fenetre active
or c'est le classeur entier que je veux sans quadrillage ni entetes
donc le code du premier post fonctionne
mais le temps d'éxécution est long

comment faire en vba
pour que ce soit toutes les feuilles du classeur sans les activer
qui soient snasn quadrillage
 
T

titus

Guest
Aprés une google search
et une légére adaptation

Sub Masque()
'inspiré d'un code de Dick Kusleika trouvé sur http://www.dicks-blog.com/excel/user_interface/index.html
Dim aShtLst() As String
Dim sh As Object
Dim lShCnt As Long
ReDim aShtLst(1 To ThisWorkbook.Sheets.Count)
For lShCnt = LBound(aShtLst) To UBound(aShtLst)
aShtLst(lShCnt) = ThisWorkbook.Sheets(lShCnt).Name
Next lShCnt
ThisWorkbook.Sheets(aShtLst).Select
With Selection
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
End With
End Sub

Personne n'a une idée pour faire plus cours?
 
T

titus

Guest
Bonjour

Voilà ou j'en suis (ca fonctionne)
Sub Masque()
Dim WS As Worksheet
F = False
Application.ScreenUpdating=F
For Each WS In Worksheets
WS.Select
With ActiveWindow
.DisplayGridlines = F
.DisplayHeadings = F
.DisplayFormulas = F
End With
Next WS
Sheets("Feuil1").Activate
Application.ScreenUpdating=True
End Sub

Personne n'a plus concis?
 

Statistiques des forums

Discussions
312 303
Messages
2 087 047
Membres
103 441
dernier inscrit
MarioC