Apercu partiel

E

Edouard

Guest
Bonsoir le forum

La macro située dans le workbook réalise l’aperçu avant impression des x lignes écrites sur les 1000 possibles du tableau de la feuille « Résultats détaillés ».
Ce tableau s’étale de la colonne A à BC.
Je voudrais modifier cette macro pour que l’aperçu puisse aussi se réaliser avec la feuille « Résultat simplifiés » qui comporte aussi 1000 lignes mais qui s’étale sur les colonnes A à K.

Merci d’avance
 

Pièces jointes

  • Copie_Coupe_Formation_Benj.zip
    43.2 KB · Affichages: 15
Z

Zon

Guest
Salut,

Il suffit juste de rajouter une condition ,2 façons de faire, la deuxieme te permettra de rajouter des feuilles le cas échéant:

With Ws
If .Range("A5") = "" Then
if .name = "Résultats détaillés" then
Set Plage = .Range("A5:BC5")
else
Set Plage = .Range("A5:K5")
end if
Else
Set Plage = .Range("A5:A65536")
Lignes = WorksheetFunction.CountIf(Plage, ">""") + WorksheetFunction.Count(Plage)
select case .name
case "Résultats détaillés" :Set Plage = Plage.Resize(Lignes, 53)
case "Résultats simplifiés": Set Plage = Plage.Resize(Lignes, 8) 'K est la colonne 8
'case "une autre feuille":Set Plage = Plage.Resize(Lignes, 15) 'par exemple
end select



A+++
 
E

Edouard

Guest
Merci bien Zon pour ta réponse

Je n’y connais rien en VBA … tout ce que j’ai réussit à faire en essayant de rentrer tes instructions c’est de casser ce qui marchait déjà !
Si tu peux me les introduire correctement cela m’arrangerai ;
La première façon pour l’instant me convient.
Merci d’avance
----------------------------------------------------------------------------------------
'Réalise l'aperçu avant impression des lignes écrites seulement x /200
'Écrit dans l'entête de page partie centrale:coupe formation niv4 et millésime de la saison pris en H12 de la feuille "Date"
'sauf pour les feuilles :Accueil,Date,et Notice ou là c'est l'aperçu traditionnel

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Valeur$, Ws As Worksheet, Plage As Range
Dim Lignes&
Application.ScreenUpdating = False
With ThisWorkbook
Valeur = " Coupe formation Niv 4 spécial benjamines " & .Worksheets("Date").Range("H20")
For Each Ws In .Worksheets
If Ws.Name <> "Accueil" And Ws.Name <> "Date" And Ws.Name <> "Notice" Then
With Ws
If .Range("A5") = "" Then
Set Plage = .Range("A5:BC5")
Else
Set Plage = .Range("A5:A65536")
Lignes = WorksheetFunction.CountIf(Plage, ">""") + WorksheetFunction.Count(Plage)
Set Plage = Plage.Resize(Lignes, 53)
End If
.Unprotect
.PageSetup.CenterHeader = Valeur
.PageSetup.PrintArea = Plage.Address
.Protect
End With
End If
Next Ws
End With
Application.ScreenUpdating = True
End Sub

Ci-joint le fichier propre (avec une petite modif.)pour contrôle
 

Pièces jointes

  • Copie_Coupe_Formation_Spe_Benj2.zip
    49.5 KB · Affichages: 14

Discussions similaires

Réponses
9
Affichages
136

Statistiques des forums

Discussions
313 131
Messages
2 095 554
Membres
106 294
dernier inscrit
Stéphkdsd