Insertion d'un saut de page

br44

XLDnaute Impliqué
Bonjour le forum ,


Voilà afin de pofiner mon programme je voudrais savoir si il est possible d'inserer automatiquement un saut de page en vba aprés une copie ?


je m'explique je copie une première feuille qui fait 29 lignes puis une autre qui s'agoute en dessous de 50 lignes et ceci à plusieur reprise .mon but ètant d'avoir une seul copie par pages et afin d'èviter de reprendre l'ensemble pour inserer où regler mes saut de pages avant l'impression .


l'ensemble final devant contenir environ plus de 10 000 lignes cela serais plus simple à gérer .


Espèrant avoir ètè claire dans ma demande je vous remerçie par avance de votre aide . amicalement BR44
 
G

Guest

Guest
Re : Insertion d'un saut de page

Bonjour br44,

D'après ce que j'ai compris ce pourrait être quelque chose comme ceci:

Code:
Sub InsereSautsPages()
 Dim i As Integer
    'Premier saut avant la ligne vingt
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A20")
    
  ' les Sauts suivants jusqu'à la ligne 10000 toutes les 50 lignes
    For i = 70 To 10000 Step 50
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A" & i)
    
    Next i
    
End Sub

Cette macro fonction sur la feuille à partir de laquelle elle est appelée.
Je te laisse le soin de faire les réglages.
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re:Bonjour HASCO,le forum


Un grand merçi à toi pour ta rèponse .

je prend le temps d'adapter et de tester et je te tient au courant


A bientôt donc sur se post .
Amicalement BR44
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: Bonjour Hasco ,le forum ,


Ce petit message pour te dire que je me suis apperçù d'un petit soussi lors de mes essais .

Oui j'ai un décalage de deux lignes lors de la deuxièmes copie se qui fait que le saut de page ne correspont pas avec le rèsultat que je souhète obtenire .


je supens donc provisoirement se post le temps de règler le problème .

En te remerciant de ta patience je te dis à plus sur le forum .
Amicalement BR44
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: bonsoir Hasco,le forum


Pour Rèpondre à ton invitation je revient donc soliciter ton aide .

Peut -tu m'expliquer se que tu veux dire par :

"Cette macro fonction sur la feuille à partir de laquelle elle est appelée."
en parlant de ta maro citer dans ton message prècèdent ?


J'ai essayer d'adapter ta macro à mon fichier mais je crois que ne dois pas la placé au bonne endroit .


De plus le problème se complique puis que je dois inserer les sauts de pages avec plusieur conditions diffèrantes .

Je prepare un fichier avec les sources est le programe mais il est trop lourd pour être poster sur le forum même ziper enfin je vais essayer de le simplifier au maximum .

Je te dis à plus et merçi d'avance pour ton aide .

Amicalement Br44 (voisin confirmer) .
 
G

Guest

Guest
Re : Insertion d'un saut de page

Bonjour Br44,

Content de te retrouver;)

Si tu travailles sur une feuille donnée par exemple "Feuil1" la macro insèrera les sauts de page sur cette feuille. Si la feuille active est "Feuil2" la macro insérera les sauts sur "Feuil2".

Cette macro doit être placée dans un module. (Outils/MAcro/Visual basic editor) ou ALT+F11.

Lorsque l'editeur de VBA est ouvert, Menu Insertion/module.

Puis tu colles la macro dans la fenêtre de droite qui affiche un module vide.

A bientôt
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: Bonjour le forum ,Hasco

Comme prèvue je joint un fichier contenant les diffèrents èlèment de ma demande qui j'èspère seront asser claire .

Tu verras que j'ai rèduit le nombre de copie dans la feuilles de destination pour cause de poids .

j'ai fais un essais sur mon program de base mais rien ne c'est produit alors je bloc :confused:

Je me suis basé sur ta macro que j'ai essayer d'adapter .


En espèrant que tu puisse m'aider ,et te remerciant par avance de se coup de main je te dis à plus sur se post . Amicalement Br44
 

Pièces jointes

  • Essais.zip
    46.8 KB · Affichages: 62
  • Essais.zip
    46.8 KB · Affichages: 68
  • Essais.zip
    46.8 KB · Affichages: 69

skoobi

XLDnaute Barbatruc
Re : Insertion d'un saut de page

Bonjour br44,

Ton fichier me rappel quelque chose ;).

Plutôt que de faire une les sauts de page par rapport aux lignes je pense qu'une recherche sur les mots "feuille de ramassage" et "facture" (uniquement sur les colonnes F:G pour ce dernier) donnerai le même résultat non?
C'est-à-dire que si "feuille de ramassage" est trouvé, la ligne du dessus à un saut de page et 2 lignes au-dessus si "facture" est trouvé, cela en "bouclant" sur toute la feuille "Archives".
A moins que je me trompe.
A te lire.
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: bonjour Skoobi ,Hasco,Le forum,


Grand merçi pour ta rèponse cher Skoobi . Quand tu dis "que mon fichier te rapel quelque chose "tu ne trompes pas ,car tu ma dèjas aider sur d'autres poste et je t'en remerçie . ;):):p

En se qui conserne ta proposition je ne suis pas contres et si tu as un peux de temps pour me faire une ebauche de macro allant dans se sens je suis preneur . D'autant plus que ta proposition aurais l'avantage de s'adapter automatiquement differantes obtions .

En te remerciant par avence je te dis à bientôt sur se post .
Amicalement BR44
 

skoobi

XLDnaute Barbatruc
Re : Insertion d'un saut de page

Re bonjour,

voici un code qui cré les sauts de page dans la feuille "Archives" comme discuté:

Code:
Sub sautpage()
Dim c As Range
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.ResetAllPageBreaks
nbre = Sheets("Archives.xls").HPageBreaks.Count
cpte = 0
With Sheets("Archives.xls").Range("A2:G65000")
    Set c = .Find("FEUILLE DE RAMASSAGE", LookIn:=xlValues, lookat:=xlPart, SearchDirection:=xlPrevious)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
          cpte = cpte + 1
            On Error Resume Next
            Set Sheets("Archives.xls").HPageBreaks(cpte).Location = c
            If Err.Number <> 0 Then ActiveSheet.HPageBreaks.Add Before:=c
            On Error GoTo 0
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
With Sheets("Archives.xls").Columns("F:G")
    Set c = .Find("FACTURE", LookIn:=xlValues, lookat:=xlPart)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            ActiveSheet.HPageBreaks.Add Before:=c.Offset(-1)
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
Application.ScreenUpdating = True
End Sub
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: Rebonjour à tous ,

Grand merçi à toi maître skoobi .


Je vais tester ta macro j'aurais trois petites choses à te demander avant .

1) Où placerais -tu ta macro ?

2) Ta macro est-elle valable pour une seul feuille ? et si oui il faudra que la modifie pour cause de feuilles multiples dans le classeur "A.xls " dans la qu'elle il y en a douze (une par mois )?

3) te serais possible de me donner une explication simple de ta macros de manière à comprendre ,


Pour tous ses points etl'ensemble de ton oeuvre je te remerçie de nouveaux et te dis à plus pour les rèsultats des testes.
amicalement BR44
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: bonsoir à tous ,


Skoobi : juste ce petit message pour te signaler que tu à oublier de dèclarer les vairable suivantes :

1) nbre As ?

2) cpte As ?

3) firstAddress AS ?


j'ai essayer de trouver et j'ai mis cela :

'Déclare la variable nbre
Dim nbre As Integer
'Déclare la variable cpte
Dim cpte As Range
'Déclare la variable firstAddress
Dim firstAddress As Range


j'ai placé ta macro à la suite de mon program dans le bouton "ARCHIVER LES FICHES" . après un premier test j'ai le rèsultat suivant : "Problème d'automation ". et là c'est le drame :confused::eek:

c'est tout pour l'instant je te dis à plus et merçi encore pour le coup de main . Amicalement BR44
 

skoobi

XLDnaute Barbatruc
Re : Insertion d'un saut de page

Re: Rebonjour à tous ,

Grand merçi à toi maître skoobi .

Oullllaaa, doucement avec les compliments.



1) Où placerais -tu ta macro ?
actuellement dans la feuille archives
2) Ta macro est-elle valable pour une seul feuille ? et si oui il faudra que la modifie pour cause de feuilles multiples dans le classeur "A.xls " dans la qu'elle il y en a douze (une par mois )?

oui car " With Sheets("Archives.xls")....."
3) te serais possible de me donner une explication simple de ta macros de manière à comprendre ,

Essayons d'être simple:
Une première recherche est faite sur la feuille avec "FEUILLE DE RAMASSAGE" en A2:G65000 du bas vers le haut en bouclant pour passer en revu toute la plage.
Quand la cellule est trouvé, le saut de page est créé.
La gestion de l'erreur permet de soit déplacé un saut de page existant soit d'en créer un nouveau.
Puis une deuxième recherche pour "facture" en colonne G:H suivant le même principe que le première recherche.

[/quote]

Tu peux supprimer "nbre = Sheets("Archives.xls").HPageBreaks.Count" que j'ai oublié d'enlever.
 

br44

XLDnaute Impliqué
Re : Insertion d'un saut de page

Re: bonsoire Skoobi,le forum


Comme prèvu je te tient au courant de mes testes . je suis dèsolè de t'annoncer que ta macro ne fonctionne pas (aucun beug vba) .

Le program fonctionne mais les "Sauts de pages " ne s'adapte pas comme prèvue par ta macro .


J'ai pourtant pourtant placée dans la première feuille du classeur "A.xls" comme tu me la dis . J'ai remplacé :

With Sheets("Archives.xls") par ("JANVIER") nom de la feuille active ,mais rien ne se passe .

j'ai aussi essayé de la mêttre dans un module et c'est la même chose .


Ne voyant pas d'autres solution pour l'instant je te dis à bientôt sans oublier de te remercier pour tes explications et ton coup de main .

Amicalement Br44
 

Discussions similaires

Statistiques des forums

Discussions
314 948
Messages
2 114 648
Membres
112 206
dernier inscrit
salah zabi