XL 2013 Zone d'impression dynamique

crowysterik

XLDnaute Nouveau
Bonjour,
J'ai besoin d'un petit coup de main pour pouvoir faire des impressions en masses de feuilles d'heures
notre logiciel de gestion des temps, n'est pas très paramétrable et il me sort des feuilles d'heures et j'aimerai pouvoir imprimer une feuille d'heure par page

Peut-on paramétrer excel via une VBA par exemple pour lui dire que dès qu'il voit Matricule, il imprime une page jusqu'au prochain matricule par exemple ?
je mets un exemple de fichier pour que vous comprenniez le problème, l'impression se décale systématiquement

merci de votre aide,
cordialement,
Fabien
 

Pièces jointes

  • TEST impression 1.xlsx
    45.2 KB · Affichages: 6
Solution
Re
Le Bouton ne remontera pas avant la fin de la macro c'est a dire quand tout sera imprimé
Une ligne a modifier:
zone = "$A" & debut & ":$M" & Range("A" & Rows.Count).End(xlUp).Row + 2
au lieu de
zone = "$A" & debut & ":$G" & Range("A" & Rows.Count).End(xlUp).Row + 2
je définis chaque zone et j'imprime successivement

crowysterik

XLDnaute Nouveau
merci beaucoup !
ça marche sur le fichier exemple,
deux petites choses, quand je colle de nouvelles données, j'ai ce message qui s'affiche :
1597209731655.png


Par ailleurs, je voudrai imprimer jusqu'à la colonne M incluse, j'ai simplement modifier dans le VBA, ça vous semble correct :

Sub zone_imp()
derlin = Range("A" & Rows.Count).End(xlUp).Row
debut = ""
For n = 1 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & n) = "Matricule :" Then
If debut = "" Then
debut = n
Else
fin = n - 2
End If
End If
If debut <> "" And fin <> "" Then
zone = zone & "$A" & debut & ":$M" & fin & ","
debut = fin + 2
fin = ""
End If
Next
zone = zone & "$A" & debut & ":$M" & Range("A" & Rows.Count).End(xlUp).Row + 2
ActiveSheet.PageSetup.PrintArea = zone
End Sub


j'ai encore beaucoup de mal avec ce type de langage...
Merci encore !
 

crowysterik

XLDnaute Nouveau
Bonjour Pierre Jean,
merci de ta proposition, je peux avoir jusqu'à 200 feuilles d'heures à imprimer,
il faudrait peut-être créer une feuille par matricule et ensuite que j'imprime toutes les feuilles d'un coup ?

est-ce possible via une maccro ? Désolé, je fais un peu l'assisté, je me forme en même temps sur le langage VBA...

Ou expliquer dans la maccro qu'il prend par exemple 700 lignes et vient couper coller dans la feuille 2 et idem dans la feuille 2 à 3 ...

ensuite je pourrai utiliser ton bouton sur chaque feuille et roule, imprimer !
 
Dernière édition:

crowysterik

XLDnaute Nouveau
Je vais regarder ça,
effectivement, à la fin j'imprime toutes les feuilles,
le bouton est bloqué dans le fichier que tu m'as envoyé, du coup je ne comprends pas trop la manipulation que tu as faite pour arriver au résultat.

à priori, ça n'imprime pas jusqu'à la colonne M, c'est le seul point que j'aurai à modifier !

merci beaucoup !
 

pierrejean

XLDnaute Barbatruc
Re
Le Bouton ne remontera pas avant la fin de la macro c'est a dire quand tout sera imprimé
Une ligne a modifier:
zone = "$A" & debut & ":$M" & Range("A" & Rows.Count).End(xlUp).Row + 2
au lieu de
zone = "$A" & debut & ":$G" & Range("A" & Rows.Count).End(xlUp).Row + 2
je définis chaque zone et j'imprime successivement
 

Discussions similaires

Réponses
6
Affichages
475