Mettre cellules à la même hauteur lors de l'impression...

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 !

libellule85

XLDnaute Accro
Bonjour le forum,

J'ai un tableau de A1 à M120, et pour imprimer celui-ci j'utilise une macro (ci-dessous) qui masque les lignes non écrites qui imprime puis réaffiche les lignes masquées.
Mon "problème" c'est que si dans la partie (droite du tableau de I6 à M6) Ecritues non créditées j'ai par exemple quelque chose de renseignée, et si dans la partie gauche de mon tableau de A84 à G84 est renseigné : à l'impression celà donne image ci-dessous, et moi je voudrais (si celà est possible) que les lignes soient à la même hauteur.



Code:
Sub ImprimeAuto()
Dim i As Long
 Application.ScreenUpdating = False
 For i = 5 To 120
     If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = True
 Next i
 Application.ScreenUpdating = True
 ActiveSheet.PrintPreview
 'Application.ScreenUpdating = False
 'For i = 5 To 120
     'If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = False
 'Next i
 'Application.ScreenUpdating = True
End Sub

D'avance merci pour votre aide
 

Pièces jointes

Re : Mettre cellules à la même hauteur lors de l'impression...

re bonjour libellule 🙂

Suite à ton MP:
Bonjour mth,
Au secours !!! Je viens de transposer la macro dans mon fichier originel, et cela ne fonctionne pas !!😕
il me met "erreur d'exécution 1004 : la méthode Select de la classe Worksheet a échoué" et un onglet aout(2) reste ouvert.
Je vous explique donc mon fichier : quand on l'ouvre on arrive sur un menu où se trouve affiché tous les mois on clique sur un mois pour afficher l'onglet du mois en question, ensuite quand on a fini quand on retourne sur le menu l'onglet du mois se masque automatiquement...
En espérant que vous pourrez m'aider à nouveau
Je vous en remercie d'avance​

que je remets dans le fil (c'est mieux car ainsi tout le monde peut lire le sujet et te répondre), je n'ai pas de problème de mon coté mais il y a peut-être une interférence avec une macro évènementielle présente dans ton classeur ?
Il faudrait pouvoir vérifier avec le code, joins un extrait avec cet onglet menu, au moins un onglet sans données confidentielles et l'intégralité du code, on devrait y voir plus clair pour t'aider.

Bonne journée,

mth
 
Re : Mettre cellules à la même hauteur lors de l'impression...

re mth,bonjour le forum
comme convenu, je met le fichier en entier (sauf les usf) mais avec toutes les macros
Merci beaucoup à ceux qui pourront m'aider
Si vous avez besoin d'autres renseignements n'hésitez pas
 
Dernière édition:
Re : Mettre cellules à la même hauteur lors de l'impression...

re 🙂

Effectivement c'est la macro de l'onglet menu qui perturbait.
Pour contourner, voici le nouveau code qui fonctionne chez moi:

Code:
Sub ImprimeAuto1()
Dim i As Long, myFeuil As String, myFeuil2 As String
 
 Application.ScreenUpdating = False
 myFeuil = ActiveSheet.Name
 ActiveSheet.Copy After:=Sheets(Sheets.Count)
 myFeuil2 = ActiveSheet.Name
 
 With Sheets(Sheets.Count)
    .Cells.EntireRow.Hidden = False
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=Range("A6:A114"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With .Sort
        .SetRange Range("A6:G114")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=Range("I6:I114"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With .Sort
        .SetRange Range("I6:L114")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    For i = 5 To 120
        If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = True
    Range("A116:A119").EntireRow.Hidden = True
    Next i
    
     ActiveSheet.PrintPreview
 
 Application.DisplayAlerts = False
  Sheets(myFeuil2).Visible = True
 Sheets(myFeuil2).Delete
 Application.DisplayAlerts = True
 
 Sheets(myFeuil).Visible = True
 Sheets(myFeuil).Select
 Application.ScreenUpdating = True
 
End With

End Sub

Vois si ok de ton coté.

Bon après-midi,

mth
 
Re : Mettre cellules à la même hauteur lors de l'impression...

re 🙂
J'ai mis ton nouveau code et celà ne fonctionne pas (au moins je n'ai plus de message d'erreur). En effet, si la ligne 6 par exemple est écrite à droite les lignes écrites du côté gauche se mette à partir de la ligne 7. Et si je met cette ligne écrite du coté droit bien plus bas, elle reste en bas au niveau de l'impression alors que les lignes du côté gauche remontent à la ligne 6... Ci joint deux images :
Au dessus :


En dessous :
 
Re : Mettre cellules à la même hauteur lors de l'impression...

re 🙂

oups... désolée, étourderie de ma part j'ai oublié de changer le nom de l'onglet au début.

Peux tu modifier ceci au début du code:

Code:
Sub ImprimeAuto1()
Dim i As Long, myFeuil As String, myFeuil2 As String
 
 Application.ScreenUpdating = False
 myFeuil = ActiveSheet.Name
 ActiveSheet.Copy After:=Sheets(Sheets.Count)
 myFeuil2 = ActiveSheet.Name
 
 With Sheets(myFeuil2)

c'est à dire remplacer
With Sheets(Sheets.Count)
par

With Sheets(myFeuil2)

@ +

mth
 
- 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

Réponses
8
Affichages
1 K
Réponses
10
Affichages
1 K
Retour