Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ajustement de la hauteur d'une zone pour impression.

  • Initiateur de la discussion Initiateur de la discussion Macpoy
  • 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 !

Macpoy

XLDnaute Impliqué
bonjour le forum,
auriez vous la gentillesse de m'aider à compléter ce bout de macro svp.

Sub ajustement()

Fact.Range("a18:f60").Rows.AutoFit

End Sub

le but étant que dans tous les cas, avec ou sans texte, cette zone est une hauteur de 366.

c'est un imprimé que je rempli grâce à un USF et qui vous le comprendrais doit tenir sur une page A4. les lignes de 18 à 60 étant la seule zone sur laquelle je peu agir pour faire la mise en page avant impression.
pour le moment je le fait en manuel, mais bon!!!

merci d'avance
 
Re : ajustement de la hauteur d'une zone pour impression.

Salut Macpoy, le Forum

Pas Sur mais peut être comme cela

Code:
Sub ajustement()
Fact.Range("a18:f60").[B]EntireRow[/B].AutoFit
End Sub

Bonne Journée
 
Re : ajustement de la hauteur d'une zone pour impression.

Re,
désolé Dull ce n'est pas ça.

bon il faut passer par une condition :
le cellules vides + les cellules "écrites" doivent dans tous les cas faire (pour l'ensemble de la zone) 366 de hauteur.
en imaginant que toutes les cellules "écrites" fasse dépasser ce chiffre de 366, alors il faut passer le nombre nécessaire de lignes sur le tableau suivant.
si une seule ligne est "écrite", alors les cellules vides doivent s'ajuster pour obtenir la hauteur total de la zone.
pas simple mais pas infaisable, j'en suis persuadé !!
 
Re : ajustement de la hauteur d'une zone pour impression.

Bonjour à tous,
Salut l'ami Dull 🙂🙂,

Il faut que la zone fasse 366 : 366 points ou pixels
As-tu essayé l'Ajustement de la zone d'impression ?

Peux-tu joindre ton fichier ?

A++ 🙂🙂
A+ à tous
 
Re : ajustement de la hauteur d'une zone pour impression.

Re le forum,
Bonjour JCGL,
la hauteur de cette zone doit être de 366 points.
qu'entend tu par :
"As-tu essayé l'Ajustement de la zone d'impression ?"
ci-joint la page de mon très gros classeur que je souhaite ajuster pour impression.
Regarde la pièce jointe Classeur1.xls
merci d'avance
 

Pièces jointes

Re : ajustement de la hauteur d'une zone pour impression.

Bonjour à tous,

Voici le code pour l'ajustement automatique avant l'impression :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$60"
    With ActiveSheet.PageSetup
        .LeftMargin = Application.InchesToPoints(0.26)
        .RightMargin = Application.InchesToPoints(0.23)
        .TopMargin = Application.InchesToPoints(0.3937)
        .BottomMargin = Application.InchesToPoints(0.3937)
        .HeaderMargin = Application.InchesToPoints(0.32)
        .FooterMargin = Application.InchesToPoints(0.28)
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
End Sub

A placer dans le ThisWorkBook

A+ à tous
 
Re : ajustement de la hauteur d'une zone pour impression.

re le forum,
désolé JCGL, mais si tu rétréci la hauteur de la cellule B23 et que tu augmente la hauteur de la ligne 29 la macro fait, certes, quelque chose, mais pas l'action recherché !!!
continuons de chercher le graal !!! lol
merci encore pour vos suggestions.
 
Re : ajustement de la hauteur d'une zone pour impression.

Bonjour à tous
peut être comme ceci, qui réduit les ligne à partir du bas jusqu'à obtenir les fameux 366.


Sub Ajustement()

Dim HauteurTotaleLigne, i

With ThisWorkbook.Sheets("Facture")
HauteurTotaleLigne = .Range(Rows(18), Rows(60)).Height

If HauteurTotaleLigne > 366 Then

For i = 46 To 18 Step -1
If .Range("B" & i) = "" Then Rows(i).RowHeight = 1

If .Range(Rows(18), Rows(60)).Height < 366 Then Exit For
Next
End If
End With
End Sub

Bon courage et à +
Denis
 
Dernière modification par un modérateur:
Re : ajustement de la hauteur d'une zone pour impression.

Re le forum,
bonjour denis,
votre proposition permet de nous approcher du but recherché, mais voyez vous, j'aimerais conserver sur ma feuille A4 l'emplacement de la partie haute (A1:F17) et l'emplacement de la partie basse (A47:F60). hors votre macro fait remonter la partie basse en fonction de ce qui est écrit dans la zone A18:f46.
je continu d'exploiter vos propositions, en vous rappelant que la zone A18:F46 est la seule variable pour que le document tienne sur une feuille A4.
merci d'avance pour vos recherches.
 
Re : ajustement de la hauteur d'une zone pour impression.

Re les participants,
bonsoir Klin89,
merci pour votre participation, mais je ne dois pas avoir tous mes esprits, car j'ai répondu à votre intervention sur ce post
https://www.excel-downloads.com/threads/hauteur-de-ligne-ajustable.70913/
et voila ce que j'y est mis:
Bonsoir le forum,
bonsoir les participants,
Mon cher Robert (j'aurais du dire klin89), nous touchons presque au but !!
il ne reste plus qu'a faire comprendre à notre logiciel favori qu'en plus d'un entête possédant un nombre fixe de ligne et d'une hauteur invariable, qu'il y à aussi un bas de page fixe et d'une hauteur invariable.
la seule partie variable en hauteur et non pas en nombre de ligne est de 18 à 46.
voici ce qu'est devenue la macro imaginée par pierrejean et Robert.

Sub Macro1()
nb = Fact.UsedRange.Rows.Count
For x = 18 To 46
Rows(x).RowHeight = 366 / nb / 0.35
Next x
End Sub
 
Re : ajustement de la hauteur d'une zone pour impression.

Re à tous,
bon j'ai pas encore tester toutes les possibilités mais je crois que cette macro fonctionne. :

Sub ajustement1()
Fact.Range("a18:f60").Rows.RowHeight = 366
Fact.Range("a18:f60").Rows.AutoFit
End Sub

merci encore pour votre participation, je vous tien au courant.
 
Re : ajustement de la hauteur d'une zone pour impression.

Re le forum,
Ben heu !!! ça marche pô tout le temps ?????????????????????
si j'inscris beaucoup de choses dans quelques lignes, la zone A18:F60 ne s'adapte pas forcément au format du document que je souhaite imprimer.
il faudrait que je passe par un If qui compare l'existant et le besoin.
l'existant = 320 alors (par l'intermédiaire des lignes vides) l'existant passe à 366.
si l'existant est > 366 alors descendre le nombre de ligne nécessaire (pour obtenir la consigne) en A65.
(j'aime bien ne pas faire simple LOLxxxl)
bon on y retourne ?????
merci d'avance
 
Re : ajustement de la hauteur d'une zone pour impression.

Re le forum,
en retravaillant la macro de Denis, je crois que je suis proche du but.
Sub Ajustement()
Dim HauteurTotaleLigne, i

With ThisWorkbook.Sheets("Facture")
.Range("a18:f46").Rows.AutoFit
HauteurTotaleLigne = .Range(Rows(18), Rows(46)).Height

If HauteurTotaleLigne > 366 Then

For i = 46 To 18 Step -1
If .Range("B" & i) = "" Then Rows(i).RowHeight = 1

If .Range(Rows(18), Rows(46)).Height < 366 Then Exit For
Next

End If
End With
End Sub

maintenant il ne me reste plus qu'a dire à M. Excel de passer à la ligne 60 si tous les écrits de la zones 18:46 dépassent 366;
c'est pas gagné mais bon, nous savons qu'à part un bon café Excel peu tout faire !!
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…