Zone d'impression et marges en fonction du texte

  • Initiateur de la discussion Initiateur de la discussion a26
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

a26

XLDnaute Occasionnel
Bonjour,

J'ai un petit souci pour régler les marges des différentes feuilles, onglets verts pour que le texte ne sot pas en dehors de la zone d'impression.
Apparemment l'array ne fonctionne pas.
Merci pour votre aide.
Cordialement,
a26
 

Pièces jointes

Re : Zone d'impression et marges en fonction du texte

Bonjour,

Peut être comme cela
Code:
Sub zoneimpression(S As Worksheet) 'determiner la zone par laurent longre
Set Vcell = S.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
Set HCell = S.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
S.PageSetup.PrintArea = S.Range("A1", S.Cells(Vcell.Row - 1, HCell.Column - 1)).Address
End Sub

Sub margesetzone()
Dim S As Worksheet
'---
Application.ScreenUpdating = False
For Each S In Worksheets(Array(8, 9, 10, 11, 12))
   With S.PageSetup
    .Orientation = xlPortrait
    .CenterHorizontally = True
    .LeftMargin = "0"
    .RightMargin = "0"
    .TopMargin = "30"
    .BottomMargin = "0"
    zoneimpression S
    largeurco S
    hauteurco S
  End With
Next S
Sheets("BD").Select
Application.ScreenUpdating = True
End Sub

Sub largeurco(S As Worksheet)
S.Columns("A:A").ColumnWidth = 6
S.Columns("B:B").ColumnWidth = 8
S.Columns("C:C").ColumnWidth = 20
S.Columns("D:D").ColumnWidth = 12
S.Columns("E:E").ColumnWidth = 10
S.Columns("F:F").ColumnWidth = 10
S.Columns("G:G").ColumnWidth = 10
S.Columns("H:H").ColumnWidth = 11
End Sub

Sub hauteurco(S As Worksheet)
S.Rows("2:400").RowHeight = 15
End Sub
 
Re : Zone d'impression et marges en fonction du texte

Merci pour cette macro qui fonctionne parfaitement. Si tu pouvais me donner des explications sur la boucle qui prend en charge les feuilles, je suis preneur.
D'autre part est-il possible d'avoir un array tenant compte de la couleur des onglet me permettant avec cette même macro d'ajouter d'autres feuilles à imprimer sans modifier celle-ci mais simplement en mettant les onglets de la même couleur ?
Cordialement,
a26
 
Re : Zone d'impression et marges en fonction du texte

D'autre part est-il possible d'avoir un array tenant compte de la couleur des onglet me permettant avec cette même macro d'ajouter d'autres feuilles à imprimer sans modifier celle-ci mais simplement en mettant les onglets de la même couleur ?

Une piste avec
Code:
Sub margesetzone()
Dim S As Worksheet
Dim CouleursOnglet
'---
CouleursOnglet = Array(vbBlack, vbCyan, vbYellow, vbBlue, vbGreen, vbMagenta, vbRed, vbWhite)   '///ajout
Application.ScreenUpdating = False
For Each S In Worksheets(Array(8, 9, 10, 11, 12))
  
  '--- Couleur de l'onglet ---
  S.Tab.Color = CouleursOnglet(2) '0=Noir correspond au 1er élément, 7=Blanc correspond au dernier élément
  '---------------------------
  
   With S.PageSetup
    .Orientation = xlPortrait
    .CenterHorizontally = True
    .LeftMargin = "0"
    .RightMargin = "0"
    .TopMargin = "30"
    .BottomMargin = "0"
    zoneimpression S
    largeurco S
    hauteurco S
  End With
  
Next S
Sheets("BD").Select
Application.ScreenUpdating = True
End Sub

Quant à la boucle
Code:
For Each S In Worksheets(Array(8, 9, 10, 11, 12))
elle balaie chaque feuille contenue dans le tableau (Array) de feuilles par ordre de leur classement (8, 9, 10, 11, 12).
Je ne comprends pas bien la question car tout est évident dans la ligne de code.
 
Re : Zone d'impression et marges en fonction du texte

Bonjour,
Merci pour ta réponse. Ce code fonctionne bien, mais il me conditionne à choisir des couleurs qui ne sont pas dans mon fichier original. Pour tout te dire j'ai déjà fait appel au forum pour celui-ci et j'ai demandé à pouvoir faire des extraction de données vers différents onglets. La couleur de ces onglets est définie par le code suivant : Call change_color(3394611, "Vert") 'couleur d'onglet d'extraction ela macro Sub change_color(chk, couleur)
Dim nbr_feuille
nbr_feuille = Sheets.Count
With ActiveWorkbook.Sheets(nbr_feuille).Tab 'pour mettre la dernière feuille en couleur
.Color = chk
.TintAndShade = 0
End With
End Sub

comment modifier le code pour avoir la couleur verte de ta macro ?
J'espère que tu comprendras ma question car elle est un peu tarabiscotée.
Bonne journée,
a26
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour