IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Souci d'ajout de saut de page


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut Souci d'ajout de saut de page
    Bonjour à tous,
    Voilà j'ai un petit souci sur une macro dans laquelle je voudrais ajouter à un certain moment un saut de page horizontal.
    Le saut de page s'ajoute mais lorsque je fais un aperçu avant impression il ne le prend pas en compte et donc les lignes suivantes ne changent pas de pages.
    J'ai essayé et pris en compte ce que l'enregistreur de macro me donner mais sans résultat non plus...
    VBA ne me fait aucune erreur pourtant, j'ai même essayé avec la sélection d'une cellule et/ou de la ligne mais rien n'y fait…
    Voici la macro peut être que l'un d'entre vous pourra me trouver la solution où mon erreur…
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Sub copy()
     
        Cells(i, 7).Select
        If cases = "" Then
            Sheets(1).Range("A7") = Cells(i, 7).Value
            cases = Sheets(1).Range("A7").Value
        End If
        If cases <> Cells(i, 7).Value Then
            Sheets(1).Select
            Sheets(1).ResetAllPageBreaks
            Rows("7:7").copy
            Range("A" & ligne1 + 8).Select
            ligne5 = Selection.Row
            Rows(ligne5).Insert Shift:=xlDown
            Range("A" & ligne5).Select
    'Ajout saut de Page sur cellule sélectionnée
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
            Rows(ligne5).Select
    'Ajout saut de Page sur ligne sélectionée
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
            Range("A" & ligne5) = Sheets("OUTILLAGE UP").Cells(i, 7).Value
            cases = Sheets(1).Range("A" & ligne5).Value
            Sheets(1).Range("J6") = Sheets(1).Range("J6").Value + 1
            Sheets("OUTILLAGE UP").Select
            ligne2 = ligne2 + 1
        End If
        Sheets(1).Cells(ligne2, 1) = Cells(i, 1).Value
        Sheets(1).Cells(ligne2, 2) = Cells(i, 9).Value
        Sheets(1).Cells(ligne2, 3) = Cells(i, 2).Value
        Sheets(1).Cells(ligne2, 4) = Cells(i, 3).Value
        Sheets(1).Cells(ligne2, 5) = Cells(i, 4).Value
        Sheets(1).Cells(ligne2, 6) = Cells(i, 5).Value
        Sheets(1).Range("J6") = Sheets(1).Range("J6").Value + 1
        ligne1 = Sheets(1).Range("J6").Value
        ligne2 = ligne2 + 1
     
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut phal2ip et le forum
    Bien ton code... mais sans une idée de la valeur des variables globales...
    Alors que quelques idées :
    - utiliser les .selected/selection est une aberration à mon sens.
    - Tu travaillles sur Sheets(1) et tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
    Pourquoi ? Pourquoi pas simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(1).HPageBreaks.Add Before:=ActiveCell
    Ça me semble plus simple (sauf pour le ActiveCell).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Range("A" & ligne5).Select
    'Ajout saut de Page sur cellule sélectionnée
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
            Rows(ligne5).Select
    'Ajout saut de Page sur ligne sélectionée
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
    ??? tu sélectionnes A ligne5 et tu mets un saut de page => admettons. Tu sélectionnes la ligne (Ligne5) => ce qui active la cellule déjàsélectionnée et tu ajoutes un saut de page . ???? Tu ne peux avoir qu'un seul saut de page par ligne !
    Un petit tour de magie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            Range("A" & ligne1 + 8).Select
            ligne5 = Selection.Row
            Rows(ligne5).Insert Shift:=xlDown
            Range("A" & ligne5).Select
    'Ajout saut de Page sur cellule sélectionnée
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
            Rows(ligne5).Select
    'Ajout saut de Page sur ligne sélectionée
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
    Abracadabra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            ligne5 = ligne1 + 8
            Rows(ligne5).Insert Shift:=xlDown
    'Ajout saut de Page sur cellule sélectionnée
            ActiveSheet.HPageBreaks.Add Before:=Rows(ligne5)
    C'est une cure d'amaigrissement rapide, non ?
    J'ai pas pu tester, un tas de variables, données son manquantes...
    A+

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut
    Merci pour cette petite info, je vais tester et te dire cela marche ou pas.
    Pour le cas du 2ème saut de page c'était juste un test car j'avais essayé en sélectionnant uniquement la cellule de la ligne pour y intégrer le saut d epage ou en sélectionnant la ligne.
    J'ai laissé les 2 dans le code pour vous montrer que j'ai tout essayer mais rien n'y faisais...
    Je vais essayé et vous tient au courant...

    Merci encore

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut
    J'ai tester et le résultat et le même qu'avant...
    En fait je pars d'un tableau avec des périodicités mensuelle, bi-mensuelle, trimestrielle, semestrielle ou annuelle et en choisissant un mois d'impression, je veux faire apparaître sur l'onglet du mois en question la première équipe avec tous ces outils à vérifié, puis lorsqu'il y a une 2ème équipe mettre le saut de page avant afin qu'elle apparaisse sur une autre page et remplir tout…
    Le fichier marche très bien sauf cette histoire de saut de page…
    Faites le test en cliquant sur Macro puis sur Impression par mois et sélectionner Février.

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Billets dans le blog
    1
    Par défaut
    Bonjour après maintes tentatives je ne trouve tjs pas la solution pourquoi il ne me prend pas les sauts de page en compte alors qu'ils existent...
    S'il vous plait quelqu'un pourrait-il m'aider???

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Bonjour,

    que sont les variables cases et i dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub copy()
     
     Cells(i, 7).Select
        If cases = "" Then
            Sheets(1).Range("A7") = Cells(i, 7).Value
            cases = Sheets(1).Range("A7").Value
        End If
        If cases <> Cells(i, 7).Value Then
    ...
    ...
    et que valent-elles ?

Discussions similaires

  1. Ajouter une mise en page après un saut de page
    Par iliaseyah dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/05/2015, 11h17
  2. Ajout saut de pages
    Par Kaaluu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2009, 15h01
  3. Réponses: 1
    Dernier message: 04/02/2008, 12h03
  4. [Delphi6] Saut de page
    Par Seb328Ci dans le forum QuickReport
    Réponses: 1
    Dernier message: 02/10/2003, 12h36
  5. [xsl] Ajouter 1 élément à la page xml
    Par ametisse dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 10/03/2003, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo