XL 2016 VBA-Mise en page automatique

Vero2782

XLDnaute Nouveau
Bonjour,

J'aimerais faire une mise en page automatique a un onglet de mon fichier.

J'ai un tableau croisé (avec des sous-totaux) et je voudrais qu'à chaque fois que je rencontre le mot Total* que cette ligne soit la dernière de la feuille. Comme cela, j'aurais 1 page par client et ce serait plus agréable a travailler une fois imprimé.

Merci pour votre aide
 

Pièces jointes

  • mise en page VBA.xlsx
    13.6 KB · Affichages: 52

Vero2782

XLDnaute Nouveau
Bonjour Philippe,

Ton code fonctionne no 1 s'il s'agit de trouver Total en 5ème position. malheureusement, dans mon cas, ce n'est pas toujours le cas car il s'agit en fait du nom du client qui fait des longueur de caractère différent.

With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$8"
End With
ActiveSheet.ResetAllPageBreaks

For i = Range("A65535").End(xlUp).Row To 1 Step -1
If Left(Cells(i, 1), 5) = "Total" Then ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(i + 1, 1)
Next i


Je vais modifier la ligne Left(Cells(i, 1), 5) = "Total" pour quelque chose de plus "général" qui pourrait trouver le mot total peu importe le nombre de lettre avant.

If Range(Cells(i, 1)).Value Like "*Total*" ne fonctionne pas non plus... :S

Véro
 
Dernière édition:

Vero2782

XLDnaute Nouveau
Bonjour !

Ha ! Je me suis rendue compte que mon "total" était dans la forme anglaise (donc à la fin du texte) plutôt qu'au début :) Ça fonctionne Super avec un petit right plutôt que le left !

If Right(Cells(i, 1), 5) = "Total"

(1 heure après mon dernier post....) !

Merci beaucoup, c'est exactement ce que je voulais.

Véro
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re,

Bonjour !

Ha ! Je me suis rendue compte que mon "total" était dans la forme anglaise (donc à la fin du texte) plutôt qu'au début :) Ça fonctionne Super avec un petit right plutôt que le left !

If Right(Cells(i, 1), 5) = "Total"

(1 heure après mon dernier post....) !

Merci beaucoup, c'est exactement ce que je voulais.

Véro

Je m'en suis rendu compte également, à l'ouverture de ton fichier, le mot "Total" était à droite et après avoir actualisé le TCD il se trouvait à gauche
Pour info, j'utilise la version 2007


à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re,

If Range(Cells(i, 1)).Value Like "*Total*" ne fonctionne pas non plus...

........... ça aurait pu fonctionner mais la ligne est incomplète


ceci fonctionne quelque soit la position du mot "Total"
Code:
For i = Range("A65535").End(xlUp).Row To 1 Step -1
If Cells(i, 1).Value Like "*Total*" = True Then ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(i + 1, 1)
Next i

à+
Philippe
 

Discussions similaires

Réponses
10
Affichages
352
Réponses
1
Affichages
399

Statistiques des forums

Discussions
312 160
Messages
2 085 841
Membres
103 002
dernier inscrit
LERUS