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