impression, sauts de pages, lignes à répéter en haut.

Le
intactsaphir
Bonjour,
Une feuille de saisie représente un ensemble de tableaux les uns à la suite des autres.
Je souhaiterais en vba:
1) définir la zone d'impression
2) que l'impression de ces données puisse s'effectuer à la suite de sauts de page déterminés par le changement de libellés d'une colonne.
3) que l'impression puisse tenir compte de "lignes à répéter en haut" par exemple les champs de colonnes (AB, champ a, champ b; CD, champ c, champ d).


merci de vos réponses
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #20095751
Bonjour,

Un exemple ..suppose tous titres en colonne1 et tous enregistrements
renseignés en colonne1:

Sub mispg()
Dim L As String, T As String, i As Long
L = [a65536].End(xlUp).Address
T = [iv1].End(xlToLeft).Address
For i = Range(L).Row To 2 Step -1
With [a:a].Cells
If .Item(i) <> .Item(i).Offset(-1, 0) Then _
ActiveSheet.HPageBreaks.Add Before:=.Item(i)
End With
Next i
With ActiveSheet.PageSetup
.PrintArea = L & ":" & T
.PrintTitleColumns = ActiveSheet.Columns(1).Address
.PrintTitleRows = ActiveSheet.Rows(1).Address
End With

End Sub

'lSteph

On 8 sep, 14:46, intactsaphir
Bonjour,
Une feuille de saisie représente un ensemble de tableaux les uns à la suite des
autres.
Je souhaiterais en vba:
1) définir la zone d'impression
2) que l'impression de ces données puisse s'effectuer à la suite de s auts de
page déterminés par le changement de libellés d'une colonne.
3) que l'impression puisse tenir compte de "lignes à répéter en hau t" par
exemple les champs de colonnes (AB, champ a, champ b; CD, champ c, champ d).

merci de vos réponses


intactsaphir
Le #20099961
LSteph a écrit le 08/09/2009 à 16h18 :
Bonjour,

Un exemple ..suppose tous titres en colonne1 et tous enregistrements
renseignés en colonne1:

Sub mispg()
Dim L As String, T As String, i As Long
L = [a65536].End(xlUp).Address
T = [iv1].End(xlToLeft).Address
For i = Range(L).Row To 2 Step -1
With [a:a].Cells
If .Item(i) <> .Item(i).Offset(-1, 0) Then _
ActiveSheet.HPageBreaks.Add Before:=.Item(i)
End With
Next i
With ActiveSheet.PageSetup
.PrintArea = L & ":" & T
.PrintTitleColumns = ActiveSheet.Columns(1).Address
.PrintTitleRows = ActiveSheet.Rows(1).Address
End With

End Sub

'lSteph

On 8 sep, 14:46, intactsaphir wrote:
Bonjour,
Une feuille de saisie représente un ensemble de tableaux les uns
à la suite des
autres.
Je souhaiterais en vba:
1) définir la zone d'impression
2) que l'impression de ces données puisse s'effectuer à la suite
de s auts de
page déterminés par le changement de libellés d'une
colonne.
3) que l'impression puisse tenir compte de "lignes à
répéter en hau t" par
exemple les champs de colonnes (AB, champ a, champ b; CD, champ c, champ d).

merci de vos réponses





Bonjour ,
merci de m'indiquer comment puis-je vous envoyer un fichier en exemple.
bonne journée
LSteph
Le #20100261
Bonjour,

As-tu essayé ce que proposé ? Qu'en est-il ?

pour ensuite proposer une piece dans ce fil, passer par là http://www.cjo int.com
et déposer le fichier tu obtiens le lien à coller ainsi:

http://cjoint.com/?jjjJWuPfIK

--
lSteph


On 9 sep, 09:06, intactsaphir
LSteph a écrit le 08/09/2009 à 16h18 :



> Bonjour,

> Un exemple ..suppose tous titres en colonne1 et tous enregistrements
> renseignés  en colonne1:

> Sub mispg()
> Dim L As String, T As String, i As Long
> L = [a65536].End(xlUp).Address
> T = [iv1].End(xlToLeft).Address
> For i = Range(L).Row To 2 Step -1
> With [a:a].Cells
> If .Item(i) <> .Item(i).Offset(-1, 0) Then _
> ActiveSheet.HPageBreaks.Add Before:=.Item(i)
> End With
> Next i
> With ActiveSheet.PageSetup
> .PrintArea = L & ":" & T
> .PrintTitleColumns = ActiveSheet.Columns(1).Address
> .PrintTitleRows = ActiveSheet.Rows(1).Address
> End With

> End Sub

> 'lSteph

> On 8 sep, 14:46, intactsaphir  wrote:
>> Bonjour,
>> Une feuille de saisie représente un ensemble de tableaux les uns
>> à la  suite des
>> autres.
>> Je souhaiterais en vba:
>> 1) définir la zone d'impression
>> 2) que l'impression de ces données puisse s'effectuer à la suite
>> de s auts de
>> page déterminés par le changement de libellés d'une
>> colonne.
>> 3) que l'impression puisse tenir compte de "lignes à
>> répéter en hau t" par
>> exemple les champs de colonnes (AB, champ a, champ b; CD, champ c, cha mp
d).

>> merci de vos réponses

Bonjour ,
merci de m'indiquer comment puis-je vous envoyer un fichier en exemple.
bonne journée- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


intactsaphir
Le #20100541
LSteph a écrit le 09/09/2009 à 09h37 :
Bonjour,

As-tu essayé ce que proposé ? Qu'en est-il ?

pour ensuite proposer une piece dans ce fil, passer par là
http://www.cjo int.com
et déposer le fichier tu obtiens le lien à coller ainsi:

http://cjoint.com/?jjjJWuPfIK

--
lSteph


On 9 sep, 09:06, intactsaphir wrote:
LSteph a écrit le 08/09/2009 à 16h18 :



> Bonjour,

> Un exemple ..suppose tous titres en colonne1 et tous enregistrements
> renseignés  en colonne1:

> Sub mispg()
> Dim L As String, T As String, i As Long
> L = [a65536].End(xlUp).Address
> T = [iv1].End(xlToLeft).Address
> For i = Range(L).Row To 2 Step -1
> With [a:a].Cells
> If .Item(i) <> .Item(i).Offset(-1, 0) Then _
> ActiveSheet.HPageBreaks.Add Before:=.Item(i)
> End With
> Next i
> With ActiveSheet.PageSetup
> .PrintArea = L & ":" & T
> .PrintTitleColumns = ActiveSheet.Columns(1).Address
> .PrintTitleRows = ActiveSheet.Rows(1).Address
> End With

> End Sub

> 'lSteph

> On 8 sep, 14:46, intactsaphir  wrote:
>> Bonjour,
>> Une feuille de saisie représente un ensemble de tableaux les
uns
>> à la  suite des
>> autres.
>> Je souhaiterais en vba:
>> 1) définir la zone d'impression
>> 2) que l'impression de ces données puisse s'effectuer à
la suite
>> de s auts de
>> page déterminés par le changement de libellés
d'une
>> colonne.
>> 3) que l'impression puisse tenir compte de "lignes à
>> répéter en hau t" par
>> exemple les champs de colonnes (AB, champ a, champ b; CD, champ c,
cha mp
d).

>> merci de vos réponses

Bonjour ,
merci de m'indiquer comment puis-je vous envoyer un fichier en exemple.
bonne journée- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -





Bonjour Lsteph

J'ai testé votre premier envoi et j'essaye de comprendre vos instructions en y insérant des commentaires.
Le problème est que dans mon premier post j'indiquais qu'il y avait plusieurs tableaux les uns à la suite des autres avec des champs différents...
Voici le fichier
http://cjoint.com/data/jjkvmjoWjE.htm

En ce qui concerne votre fichier la commande test ne fonctionne pas. J'ai du mettre en commentaire '.Orientation = xlLandscape

Merci de m'aider dans la réalisation de ma demande.
intactsaphir
Le #20100631
intactsaphir a écrit le 09/09/2009 à 10h31 :
LSteph a écrit le 09/09/2009 à 09h37 :
Bonjour,

As-tu essayé ce que proposé ? Qu'en est-il ?

pour ensuite proposer une piece dans ce fil, passer par là
http://www.cjo int.com
et déposer le fichier tu obtiens le lien à coller ainsi:

http://cjoint.com/?jjjJWuPfIK

--
lSteph


On 9 sep, 09:06, intactsaphir wrote:
LSteph a écrit le 08/09/2009 à 16h18 :



> Bonjour,

> Un exemple ..suppose tous titres en colonne1 et tous enregistrements
> renseignés  en colonne1:

> Sub mispg()
> Dim L As String, T As String, i As Long
> L = [a65536].End(xlUp).Address
> T = [iv1].End(xlToLeft).Address
> For i = Range(L).Row To 2 Step -1
> With [a:a].Cells
> If .Item(i) <> .Item(i).Offset(-1, 0) Then _
> ActiveSheet.HPageBreaks.Add Before:=.Item(i)
> End With
> Next i
> With ActiveSheet.PageSetup
> .PrintArea = L & ":" & T
> .PrintTitleColumns = ActiveSheet.Columns(1).Address
> .PrintTitleRows = ActiveSheet.Rows(1).Address
> End With

> End Sub

> 'lSteph

> On 8 sep, 14:46, intactsaphir  wrote:
>> Bonjour,
>> Une feuille de saisie représente un ensemble de tableaux les
uns
>> à la  suite des
>> autres.
>> Je souhaiterais en vba:
>> 1) définir la zone d'impression
>> 2) que l'impression de ces données puisse s'effectuer
à
la suite
>> de s auts de
>> page déterminés par le changement de libellés
d'une
>> colonne.
>> 3) que l'impression puisse tenir compte de "lignes à
>> répéter en hau t" par
>> exemple les champs de colonnes (AB, champ a, champ b; CD, champ c,
cha mp
d).

>> merci de vos réponses

Bonjour ,
merci de m'indiquer comment puis-je vous envoyer un fichier en exemple.
bonne journée- Masquer le texte des messages précédents
-

- Afficher le texte des messages précédents -







Bonjour Lsteph

J'ai testé votre premier envoi et j'essaye de comprendre vos
instructions en y insérant des commentaires.
Le problème est que dans mon premier post j'indiquais qu'il y avait
plusieurs tableaux les uns à la suite des autres avec des champs
différents...
Voici le fichier
http://cjoint.com/data/jjkvmjoWjE.htm

En ce qui concerne votre fichier la commande test ne fonctionne pas. J'ai du
mettre en commentaire '.Orientation = xlLandscape

Merci de m'aider dans la réalisation de ma demande.


Re:
merci de ne pas prendre en compte la remarque suivante de mon dernier post:
"En ce qui concerne votre fichier la commande test ne fonctionne pas. J'ai du
mettre en commentaire '.Orientation = xlLandscape"

car la macro instruction fonctionne, ,j'ai du faire une erreur de manipulation.
LSteph
Le #20101801
Bonjour,

Ton fichier éclaire un peu mieux ma compréhension sur certains points
qui n'entraient pas dans ma logique
(Notamment les titres me semblaient concerner Ligne 1 ou 2 mais pas
les colonnes AB ou CD
qui en fait sont un texte entré dans la ccellule un intitulé de
colonne)

Ce que j'ai proposé fonctionne avec un tableau "normal" mais ne
convient pas dans ce cas
(Je supposais que tes "plusieurs tableaux" naissaient simplement du
fait du changement de nom en colonne A)

Ainsi ne prévoit pas que l'on vienne insérer d'autres titres en plein
milieu!!
Le handicap nait de la mauvaise disposition qu'il en résulte par
rapport au principe d'impression des titres
3) que l'impression puisse tenir compte de "lignes à répéter en haut


qui prévoit la répétition de la(es) ligne(s) choisies sur tout les
blocs à imprimer consécutivement.

Ce sera donc toujours AB qui sera répété (C'est ainsi que c'est pré vu
dans excel et pas autrement)
de plus l'interposition de ces autres titres fait que l'on ne peut
plus se baser aussi simplement sur le principe:
2) que l'impression de ces données puisse s'effectuer à la suite de sa uts de
page déterminés par le changement de libellés d'une colonne.



Au vu donc de tout cela, il me semble devoir rechercher une autre
solution.

@+

--
lSteph

On 9 sep, 10:46, intactsaphir
intactsaphir a écrit le 09/09/2009 à 10h31 :



> LSteph a écrit le 09/09/2009 à 09h37 :
>> Bonjour,

>> As-tu essayé ce que proposé ? Qu'en est-il ?

>> pour ensuite proposer une piece dans ce fil, passer par là
>>http://www.cjoint.com
>> et déposer le fichier tu obtiens le lien à coller ainsi:

>>http://cjoint.com/?jjjJWuPfIK

>> --
>> lSteph

>> On 9 sep, 09:06, intactsaphir  wrote:
>>> LSteph a écrit le 08/09/2009 à 16h18 :

>>> > Bonjour,

>>> > Un exemple ..suppose tous titres en colonne1 et tous enregistrement s
>>> > renseignés  en colonne1:

>>> > Sub mispg()
>>> > Dim L As String, T As String, i As Long
>>> > L = [a65536].End(xlUp).Address
>>> > T = [iv1].End(xlToLeft).Address
>>> > For i = Range(L).Row To 2 Step -1
>>> > With [a:a].Cells
>>> > If .Item(i) <> .Item(i).Offset(-1, 0) Then _
>>> > ActiveSheet.HPageBreaks.Add Before:=.Item(i)
>>> > End With
>>> > Next i
>>> > With ActiveSheet.PageSetup
>>> > .PrintArea = L & ":" & T
>>> > .PrintTitleColumns = ActiveSheet.Columns(1).Address
>>> > .PrintTitleRows = ActiveSheet.Rows(1).Address
>>> > End With

>>> > End Sub

>>> > 'lSteph

>>> > On 8 sep, 14:46, intactsaphir  wrote:
>>> >> Bonjour,
>>> >> Une feuille de saisie représente un ensemble de tableaux les
>>> uns
>>> >> à la  suite des
>>> >> autres.
>>> >> Je souhaiterais en vba:
>>> >> 1) définir la zone d'impression
>>> >> 2) que l'impression de ces données puisse s'effectuer
>>> à
>>> la suite
>>> >> de s auts de
>>> >> page déterminés par le changement de libellés
>>> d'une
>>> >> colonne.
>>> >> 3) que l'impression puisse tenir compte de "lignes à
>>> >> répéter en hau t" par
>>> >> exemple les champs de colonnes (AB, champ a, champ b; CD, champ c,
>>> cha mp
>>> d).

>>> >> merci de vos réponses

>>> Bonjour ,
>>> merci de m'indiquer comment puis-je vous envoyer un fichier en exempl e.
>>> bonne journée- Masquer le texte des messages précédents
>>> -

>>> - Afficher le texte des messages précédents -

> Bonjour Lsteph

> J'ai testé votre premier envoi et j'essaye de comprendre vos
> instructions en y insérant des commentaires.
> Le problème est que dans mon premier post j'indiquais qu'il y avait
> plusieurs tableaux les uns à la suite des autres avec des champs
> différents...
> Voici le fichier
>http://cjoint.com/data/jjkvmjoWjE.htm

> En ce qui concerne votre fichier la commande test ne fonctionne  pas. J'ai
du
> mettre en commentaire '.Orientation = xlLandscape

> Merci de m'aider dans la réalisation de ma demande.

Re:
merci de ne pas prendre en compte la remarque suivante de mon dernier pos t:
"En ce qui concerne votre fichier la commande test ne fonctionne pas. J'a i du
mettre en commentaire '.Orientation = xlLandscape"

car la macro instruction fonctionne, ,j'ai du faire une erreur de manipul ation.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


LSteph
Le #20101761
re,

(au passage je rectifie pour plus de compréhension les commentaires
que tu avais insérés dans le code

Sub mispg()
Dim L As String, T As String, i As Long

'1) délimitation de la zone à imprimer
L = [A65536].End(xlUp).Address ' adresse absolue de la dernire cellule
en colonne A du tableau
T = [IV2].End(xlToLeft).Offset(-1).Address 'ladresse absolue de la
première cellule la plus à DROITE du tableau

'2) sauts de pages lorsque le libellé change
For i = Range(L).Row To 2 Step -1
With [a:a].Cells 'avec la colonne a:a
If .Item(i) <> .Item(i).Offset(-1, 0) Then
ActiveSheet.HPageBreaks.Add Before:=.Item(i)
'si le contenu de la cellule (i) est différent de celui de
la cellule supérieure (-1)
'alors saut de page entre les deux
End With
Next i

With ActiveSheet.PageSetup
.PrintArea = L & ":" & T
.PrintTitleColumns = ActiveSheet.Columns(1).Address
.PrintTitleRows = ActiveSheet.Rows(1).Address

End With

End Sub

'...je regarde cela cet aprem quand je trouve un moment, puisque en
toute logique cela ne se prette pas à ta feuillle
J'ai une piste si la disposition est toujours ainsi de deux colonnes
et que toutes les cellules sont toujours remplies
sauf la première cell de chaque bloc e n colonne 2

Merci entre temps de préciser si c'est bien toujours le cas!

@+

--
lSteph

On 9 sep, 10:46, intactsaphir
intactsaphir a écrit le 09/09/2009 à 10h31 :



> LSteph a écrit le 09/09/2009 à 09h37 :
>> Bonjour,

>> As-tu essayé ce que proposé ? Qu'en est-il ?

>> pour ensuite proposer une piece dans ce fil, passer par là
>>http://www.cjoint.com
>> et déposer le fichier tu obtiens le lien à coller ainsi:

>>http://cjoint.com/?jjjJWuPfIK

>> --
>> lSteph

>> On 9 sep, 09:06, intactsaphir  wrote:
>>> LSteph a écrit le 08/09/2009 à 16h18 :

>>> > Bonjour,

>>> > Un exemple ..suppose tous titres en colonne1 et tous enregistrement s
>>> > renseignés  en colonne1:

>>> > Sub mispg()
>>> > Dim L As String, T As String, i As Long
>>> > L = [a65536].End(xlUp).Address
>>> > T = [iv1].End(xlToLeft).Address
>>> > For i = Range(L).Row To 2 Step -1
>>> > With [a:a].Cells
>>> > If .Item(i) <> .Item(i).Offset(-1, 0) Then _
>>> > ActiveSheet.HPageBreaks.Add Before:=.Item(i)
>>> > End With
>>> > Next i
>>> > With ActiveSheet.PageSetup
>>> > .PrintArea = L & ":" & T
>>> > .PrintTitleColumns = ActiveSheet.Columns(1).Address
>>> > .PrintTitleRows = ActiveSheet.Rows(1).Address
>>> > End With

>>> > End Sub

>>> > 'lSteph

>>> > On 8 sep, 14:46, intactsaphir  wrote:
>>> >> Bonjour,
>>> >> Une feuille de saisie représente un ensemble de tableaux les
>>> uns
>>> >> à la  suite des
>>> >> autres.
>>> >> Je souhaiterais en vba:
>>> >> 1) définir la zone d'impression
>>> >> 2) que l'impression de ces données puisse s'effectuer
>>> à
>>> la suite
>>> >> de s auts de
>>> >> page déterminés par le changement de libellés
>>> d'une
>>> >> colonne.
>>> >> 3) que l'impression puisse tenir compte de "lignes à
>>> >> répéter en hau t" par
>>> >> exemple les champs de colonnes (AB, champ a, champ b; CD, champ c,
>>> cha mp
>>> d).

>>> >> merci de vos réponses

>>> Bonjour ,
>>> merci de m'indiquer comment puis-je vous envoyer un fichier en exempl e.
>>> bonne journée- Masquer le texte des messages précédents
>>> -

>>> - Afficher le texte des messages précédents -

> Bonjour Lsteph

> J'ai testé votre premier envoi et j'essaye de comprendre vos
> instructions en y insérant des commentaires.
> Le problème est que dans mon premier post j'indiquais qu'il y avait
> plusieurs tableaux les uns à la suite des autres avec des champs
> différents...
> Voici le fichier
>http://cjoint.com/data/jjkvmjoWjE.htm

> En ce qui concerne votre fichier la commande test ne fonctionne  pas. J'ai
du
> mettre en commentaire '.Orientation = xlLandscape

> Merci de m'aider dans la réalisation de ma demande.

Re:
merci de ne pas prendre en compte la remarque suivante de mon dernier pos t:
"En ce qui concerne votre fichier la commande test ne fonctionne pas. J'a i du
mettre en commentaire '.Orientation = xlLandscape"

car la macro instruction fonctionne, ,j'ai du faire une erreur de manipul ation.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


LSteph
Le #20101871
'...je regarde cela cet aprem quand je trouve un moment, puisque en
toute logique cela ne se prette pas à ta feuillle
J'ai une piste si la disposition est toujours ainsi de deux colonnes
et que toutes les cellules sont toujours remplies
sauf la première cell de chaque bloc e n colonne 2


Merci entre temps de préciser si c'est bien toujours le cas!


@+


--
lSteph
intactsaphir
Le #20101921
LSteph a écrit le 09/09/2009 à 12h32 :
'...je regarde cela cet aprem quand je trouve un moment, puisque en
toute logique cela ne se prette pas à ta feuillle
J'ai une piste si la disposition est toujours ainsi de deux colonnes
et que toutes les cellules sont toujours remplies
sauf la première cell de chaque bloc e n colonne 2


Merci entre temps de préciser si c'est bien toujours le cas!


@+


--
lSteph


Re
merci pour les annotations
les colonnes sont au nombre de 9
les lignes sont indéterminées
LSteph
Le #20103371
Sub mispg()
Dim L As Long, T As Long, i As Long, Maplage As Range


L = [A65536].End(xlUp).Row
T = Range("B" & L).End(xlUp).Row - 1


Do While T > 0

Set Maplage = Range(Cells(L, 1), Cells(T + 2, 9))


With ActiveSheet.PageSetup
.PrintArea = Maplage.Address
.PrintTitleColumns = Maplage.Columns(1).Address
.PrintTitleRows = Range(T & ":" & T + 1).Address
.Orientation = xlLandscape
End With
For i = L To T + 3 Step -1
With Range("a:a") 'avec la colonne
If .Cells(i) <> .Cells(i - 1) Then
ActiveSheet.HPageBreaks.Add Before:=.Cells(i)
End With
Next i
ActiveSheet.PrintPreview
L = T - 1
On Error GoTo fin
T = Range("B" & L).End(xlUp).Row - 1
Set Maplage = Nothing
Loop
fin:

End Sub
Publicité
Poster une réponse
Anonyme