Macro fonctionne que sur deux feuilles au lieu de 5

Bonsoir le forum,

J'ai besoin de vos lumières : en effet, j'ai une macro (ci-dessous) que j'ai mis dans le code de 5 feuilles (en modifiant le nom de la macro et le nom du tableau à chaque fois).

L'objet de la macro : masquer les lignes ou colonnes non renseignées puis s'occuper de l'orientation du papier (suivant le nombre de colonne) puis faire aperçu avant impression et enfin démasquer les lignes et colonnes).

Cette macro ne fonctionne que sur deux feuilles !! Et sur les autres feuilles la macro s'exécute mais sans s'occuper de l'orientation du papier (il n'y a aucun message d'erreur) !!!

Sub ImprimMds()
Dim I As Long
Dim j As Byte
Dim k As Byte

Application.ScreenUpdating = False
 For k = 3 To 11
    Columns(k).Hidden = Application.CountA(Cells(2, k)) = 0            ', Cells(7, j), Cells(10, j)) = 0
Next k
 Application.ScreenUpdating = True

Application.ScreenUpdating = False
 For j = 12 To 20
    Columns(j).Hidden = Application.CountA(Cells(2, j)) = 0            ', Cells(7, j), Cells(10, j)) = 0
Next j
 Application.ScreenUpdating = True

 Application.ScreenUpdating = False
 For I = 3 To 55
     Rows(I).Hidden = Application.CountA(Rows(I)) = 0 Or Cells(I, "L").Value <> ""
     'If Application.CountA(Rows(I)) = 0 Then Rows(I).Hidden = True
 Next I
 Application.ScreenUpdating = True
 Frs = [B1]
With [TableauMds] 'ActiveSheet.PageSetup
 'PageSetup.CenterHeader = "&""arial,bold" & """" & Frs
  '.Parent.PageSetup..CenterHorizontally = True
  .Parent.PageSetup.PrintArea = .Address
  .Parent.PageSetup.Orientation = IIf(.Width > .Height, xlLandscape, xlPortrait)
  .Parent.PrintPreview '' .PrintPreview
 End With
 'ActiveWindow.SelectedSheets.PrintPreview
 Select Case MsgBox("Voulez-vous imprimer ce document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
      Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select

 Application.ScreenUpdating = False
 For k = 3 To 11
Columns(k).Hidden = False
Next k
 Application.ScreenUpdating = True

  Application.ScreenUpdating = False
 For j = 12 To 20
Columns(j).Hidden = False
Next j
 Application.ScreenUpdating = True

 Application.ScreenUpdating = False
 For I = 3 To 55
  Rows("3:55").Hidden = False
     'If Application.CountA(Rows(I)) = 0 Then Rows(I).Hidden = False
 Next I
 Application.ScreenUpdating = True
 Range("A3").Select
End Sub

D'avance merci pour votre aide

Bonsoir

Afin de faire des tests ton fichier serait utile

Tu indiques quelles ne veulent pas s'imprimer ?

Bonsoir Banzaï64,

Je te remercie pour ta réponse, ce qui ne fonctionne pas sur certaines feuilles c'est juste l'orientation du papier sinon le reste de la macro fonctionne.

Quand j'appelle ce code tout seul, cela fonctionne mais quand je le met dans la macro du post 1 cela fonctionne que sur certaines feuilles (en changeant bien sûr le nom du tableau).

With [TableauMds] 'ActiveSheet.PageSetup
'PageSetup.CenterHeader = "&""arial,bold" & """" & Frs
 '.Parent.PageSetup..CenterHorizontally = True
 .Parent.PageSetup.PrintArea = .Address
  .Parent.PageSetup.Orientation = IIf(.Width > .Height, xlLandscape, xlPortrait)
  .Parent.PrintPreview '' .PrintPreview
End With

Bonsoir

Dur de t'aider quand cela fonctionne

libellule85 a écrit :

mais quand je le met dans la macro du post 1

C'est le même code !!!

Je soupçonne (1ère idée - mais sans conviction profonde) un conflit avec les noms des tableaux identiques dans chaque page

Afin que quelqu'un trouve une explication il faut un fichier qui merde plante

Rechercher des sujets similaires à "macro fonctionne que deux feuilles lieu"