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 :

Insertion puis suppression de saut de page dans excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut Insertion puis suppression de saut de page dans excel
    Bonjour,

    J'ai un document excel dans lequel j'ai créé un bouton pour insérer des lignes. A partir d'un certain nombre, j'insére un saut de page afin que la mise en page reste "correcte". Seulement à un certain moment, je souhaiterai supprimer ce saut de page mais je n'y parvient pas... Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If inumligne = 32 Then
        Rows(inumligne + 3).Select
        ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell
    End If
    If inumligne = 46 Then
        Rows(49).Select
        ActiveSheet.HPageBreaks.Delete
       End If
    Quelqu'un pourrait me dire ce qui ne va pas avec ce code ?

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    La méthode Delete n'existe pas directement sur HPageBreak.

    Essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.HPageBreak.Item.Delete

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    Ca ne marche pas . Message d'erreur : propriété ou méthode non gérée par cet objet...

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Essaye peut etre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.HPageBreaks(NomFeuille).Delete
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    pour supprimer tous les sauts de page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    n = ActiveSheet.HPageBreaks.Count 
    for i=1 to n 
        ActiveSheet.hPageBreaks(i).delete 
    next
    reste a connaitre la bonne valeur de i pour supprimer le saut de page voulu...

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    J'ai essayé ton code mais il ne marche pas. Je ne sais pas si j'ai oublié quelque chose. Il me vient l'erreur suivante : Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet. Je ne sais pas si j'ai oublié de déclarer quelque chose ?

    Merci du coup de pouce

  7. #7
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    tu dois supprimer un saut de page qui n'existe pas.

    quand j'enregistre une macro automatique qui supprime un saut de page, j'obtiens le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.HPageBreaks(1).Delete
    donc il est probable que ton indice sorte de la collection HPageBreaks().

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    Aucune idée. J'avoue que je n'y comprend rien... voici la globalité de mon code :
    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
     
    Private Sub Macro1()
     
    ActiveSheet.Unprotect ("cestegal")
     
    inumligne = Range("x1").Value
    '
        Rows(inumligne).Select
        Selection.Insert Shift:=xlUp
        Rows(inumligne + 1).Select
        Selection.Copy
        Rows(inumligne).Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
    If inumligne = 32 Then
    Rows(35).Select
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
    End If
    If inumligne = 46 Then
    n = ActiveSheet.HPageBreaks.Count
    For i = 1 To n
        ActiveSheet.HPageBreaks(i).Delete
    Next
    End If
        Range("x1").Value = inumligne + 1
    ActiveSheet.Protect ("cestegal")
     
    End Sub
    J'essai donc d'effacer le totalité des saut de pages mais ça ne fonctionne pas...

  9. #9
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    sur quelle ligne se produit l'erreur ?
    chez moi ça ne plante pas...

    si ton fichier n'est pas confidentiel, tu pourrais le mettre en lien stp ?

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    demande de commande.zip

    Voilà l'truc...

    Merci beaucoup

  11. #11
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    visiblement il refuse de supprimer le 1er saut de page. Peut etre est-ce dû au fait que ce premier HPageBreak représente le début de la feuille.

    Quand je mets 2 en indice il le supprime normalement.

    donc je te conseille de commencer tes suppressions à partir de l'indice 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 2 To n
        HPageBreaks(i).Delete
    Next

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Par défaut
    Merci beaucoup. J'ai mis ce que vous m'avez donné en remplaçant tout de même le 2 par un 1 et... ça marche.

    Je n'y comprend rien mais ce n'est pas grave...

    Merci et bonne fin d'après-midi

  13. #13
    Invité de passage
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Par défaut Supprimer un saut de page manuel
    On ne peut supprimer que les sauts de page manuels, il faut donc tester le type de saut de page avant de tenter de le supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub SupprimerSautsDePage(AFeuille As Worksheet)
      Dim intSautPage As Integer
      Dim intNbSauts  As Integer
      With AFeuille
        intNbSauts = .HPageBreaks.Count
        'Supprimer tous les sauts de page horizontaux
        For intSautPage = intNbSauts To 1 Step -1
          If .HPageBreaks.Item(intSautPage).Type = xlPageBreakManual Then
            .HPageBreaks.Item(intSautPage).Delete
          End If
        Next
      End With
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saut de page dans Excel
    Par zibou7 dans le forum SSRS
    Réponses: 3
    Dernier message: 13/03/2012, 10h55
  2. Insertion/imposition Saut de page dans un état
    Par kedmard dans le forum IHM
    Réponses: 6
    Dernier message: 10/02/2012, 10h40
  3. Réponses: 0
    Dernier message: 08/12/2008, 09h46
  4. [VB6] insérer saut de page dans Excel
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/11/2006, 11h32
  5. VBA : Insertion d'un saut de page dans WORD
    Par Actarus69 dans le forum VBA Word
    Réponses: 1
    Dernier message: 25/04/2006, 13h05

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