aperçu

  • Initiateur de la discussion nickytchao
  • Date de début
N

nickytchao

Guest
Pouvez vous me dire ce qui cloche dans ce bout de macro (aperçu avant impression)

For Each AvailableSheet In ActiveWorkbook.Worksheets
If AvailableSheet.Visible = True Then
sheets.select
End If
Next
ActiveWindow.SelectedSheets.PrintPreview

J'zi une erreur sur le 'sheets.select', je suis pourtant sur que cette manip a déjà marché... à ceci près qu'avant je sélectionnais toutes les feuilles du document, la j'ai un début de macro qui en cache certaines...
Merci!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re NickyTchao, Le Forum

Comme promis déjà de retour !!! lol

Code:
Sub VisibleSheets()
Dim AvailableSheet As Worksheet

    For Each AvailableSheet In ActiveWorkbook.Worksheets
        If AvailableSheet.Visible = True Then
           AvailableSheet.Select
           Exit For
        End If
    Next
ActiveWindow.SelectedSheets.PrintPreview

End Sub

Tu noteras que je sors de la boucle... Et que j'ai aussi déclaré AvailableSheet

Bon Aprèm
@+Thierry
 
N

nickytchao

Guest
J'avais aussi déclaré availablesheet, (le début de la macro n'apparaît pas) j'imagine que le problème vient du fait que je ne sortais pas du 'for', bon je peux pas tester pour l'instant, j'ai d'autres soucis (plus j'améliore, plus ca foire...) mais j'imagine que ca marchera!
Par contre je comprends pas bien le 'Exit For'...en quoi ca change le résultat?
 
N

nickytchao

Guest
c remoi,
j'ai le même résultat ou presque, il ne m'affiche l'apreçu que pour la première feuille, en fait apparemment il sélectionne, et le fait de sélectionner une autre feuille 'dé- selectionne' la précédente...
Alors j'ai inclu le 'printpreview' dans ma boucle, ca permet de les afficher une par une, pas trop top, mais pour l'instant j'ai que ca...
Merci en tout cas!
 
J

JPM

Guest
Bonjour,

Peut-etre avec ce code :

Code:
Sub VisibleSheets()
  
  Dim AvailableSheet As Worksheet
  Dim t() As String
  Dim i As Byte
  i = 0
  
  For Each AvailableSheet In ActiveWorkbook.Worksheets
    If AvailableSheet.Visible = True Then
      ReDim Preserve t(i)
      t(i) = AvailableSheet.Name
      i = i + 1
    End If
  Next
  
  Sheets(t()).Select
  ActiveWindow.SelectedSheets.PrintPreview

End Sub

Je vais manger !

Jean-Pierre
 

Discussions similaires

Statistiques des forums

Discussions
312 790
Messages
2 092 126
Membres
105 226
dernier inscrit
Pepecham