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

C# Discussion :

[C#]PageBreak dans un fichier excel


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut [C#]PageBreak dans un fichier excel
    Bonjour à tous,

    Avec un programme C#, je crée un fichier excel avec plusieurs feuilles.
    Tout se passe bien jusqu'à ce que j'essaie de supprimer les sauts de page (pagebreak).

    J'arrive à en ajouter mais je n'arrive pas à supprimer les sauts de page automatique.

    J'ai essayé plusieurs méthodes, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range AutoVPageBreaks=ExcelWorksheet1.VPagesBreaks[1].Location;
    AutoVPageBreaks.PageBreaks=XlPageBreaks.XlPageBreakNone;
    or

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    VPageBreak VPB1= ExcelWorksheet1.VPagesBreaks[1];
    VPB1.Delete();
    --> celle-là lève une exeption

    J'ai aussi essayé en ajoutant ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DisplayPageBreaks=false
    mais ca n'a pas marché... J'ai toujours mes sauts de pages.

    Est-ce que quelqu'un saurait comment supprimer ces sauts de page? Est-ce que je dois être en mode printpreview? Si oui, comment? (J'ai essayé mais cela lève une exception)

    J'espère que quelqu'un saura.

    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Si tu arrives à supprimer ces sauts de pages avec une macro Excel, tu sauras le faire par programmation : http://skalp.developpez.com/tutoriel...onexcel/#LVI-B

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Avec la macro, j'y arrive. Par exemple, il y a la méthode "dragoff" pour retirer le saut de page mais quand je le fais avec C#, j'ai une "COMexception" ...

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Il semblerait que les sauts de page ajoutés par programmation n'apparaissent pas dans la collection des sauts de page de la feuille.
    La seule solution est de se trimballer l'objet VPageBreak pendant l'instance d'Excel (ça fonctionne, j'ai testé).
    Le problème n'est pas résolu si tu dois récupérer les sauts de page d'un fichier Excel existant...

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Il semblerait que les sauts de page ajoutés par programmation n'apparaissent pas dans la collection des sauts de page de la feuille.
    La seule solution est de se trimballer l'objet VPageBreak pendant l'instance d'Excel (ça fonctionne, j'ai testé).
    Le problème n'est pas résolu si tu dois récupérer les sauts de page d'un fichier Excel existant...
    Je ne comprend pas ce que tu veux dire ...
    Quand j'ajoute un saut de page, je l'ai dans la collection. Et je peux les supprimer.

    J'ai remarqué quej e pouvais supprimer tout les saut de page manuel ... alors j'ai essayé de transformer le saut automatique en manuel, pour ensuite le supprimer. En le supprimant, ca le "remet" en automatique donc je l'ai toujours ...

    J'ai essayé en le transformant en manuel et ensuite ne le deplacant, ca leve une exception ...

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par kurisutofu Voir le message
    Je ne comprend pas ce que tu veux dire ...
    Quand j'ajoute un saut de page, je l'ai dans la collection. Et je peux les supprimer.
    Tu as bien de la chance, car dans ma collection HPageBreaks, je n'ai aucun saut de page : count = 0.

    Citation Envoyé par kurisutofu Voir le message
    J'ai remarqué quej e pouvais supprimer tout les saut de page manuel ... alors j'ai essayé de transformer le saut automatique en manuel, pour ensuite le supprimer. En le supprimant, ca le "remet" en automatique donc je l'ai toujours ...

    J'ai essayé en le transformant en manuel et ensuite ne le deplacant, ca leve une exception ...
    Pourquoi vouloir supprimer tous les sauts de page ? Pourquoi ne définis-tu pas ta zone d'impression directement ?

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Pourquoi vouloir supprimer tous les sauts de page ? Pourquoi ne définis-tu pas ta zone d'impression directement ?
    En fait, je n'y avais pas pensé Et puis un collegue me l'a conseillé aussi donc je vais essayer.

    En fait, je n'y avais pas pensé car je ne connais pas bien excel (je ne l'utilise quasiement jamais ...) donc je pensais que definir la zone d'impression indiquait simplement qu'elle partie on voulait imprimer et qu'ensuite, les sauts de page decoupaient cette zone...

    Je vais me renseigner pour faire ca ^_^

  8. #8
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par kurisutofu Voir le message
    En fait, je n'y avais pas pensé
    ^^
    Ca doit donner quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFeuille.PageSetup.PrintArea = "$ColonneDebut$LigneDebut:$ColonneFin$LigneFin";

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Citation Envoyé par Skalp Voir le message
    ^^
    Ca doit donner quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFeuille.PageSetup.PrintArea = "$ColonneDebut$LigneDebut:$ColonneFin$LigneFin";
    oui, j'ai essayé mais rien ne change ... c'est comme si je n'avais rien fait.

    Mais n'est-ce pas parce qu'en definissant la zone, excel definit ensuite de lui-meme, par rapport a l'imprimante, les pages break? Dans ce cas, ce serait normal que rien ne change ...

    Pour tester, je vais tenter une zone plus petite pour voir ...

  10. #10
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    En fait, tu veux définir une zone d'impression qui tienne sur 1 page à l'impression ?

    Il te faut alors spécifier en plus l'ajustement de la zone d'impression sur 1 page en hauteur et en largeur (dans Excel > Fichier > Mise en page > Page > Ajuster...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maFeuille.PageSetup.FitToPagesWide = 1
    maFeuille.PageSetup.FitToPagesTall = 1

  11. #11
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Citation Envoyé par Skalp Voir le message
    En fait, tu veux définir une zone d'impression qui tienne sur 1 page à l'impression ?

    Il te faut alors spécifier en plus l'ajustement de la zone d'impression sur 1 page en hauteur et en largeur (dans Excel > Fichier > Mise en page > Page > Ajuster...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maFeuille.PageSetup.FitToPagesWide = 1
    maFeuille.PageSetup.FitToPagesTall = 1
    En fait, en hauteur, j'en ai pas besoin. Juste en largeur.
    J'avais essayé avec maFeuille.PageSetup.FitToPagesWide = true ... et le pire, c'est que ca m'a pas donné d'erreur ...

    Je vais essayer avec ta solution ^_^

    Edit:
    Ca a pas marché ... :-(

  12. #12
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par kurisutofu Voir le message
    Ca a pas marché ... :-(
    Grrrr ! On va y arriver ! Qu'est-ce ça donne exactement comme résultat ?

  13. #13
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Grrrr ! On va y arriver ! Qu'est-ce ça donne exactement comme résultat ?
    Comme si je faisais rien ...

  14. #14
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    J'ai trouvé (enfin, grace a un autre forum ...)

    Il suffit de faire comme tu as dit Skalp, et d'ajouter ...PageSetup.Zoom=false;

    Merci beaucoup pour ton aide Skalp!

  15. #15
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Bravo !


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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/03/2012, 15h58
  2. Exporter une table dans un fichier excel
    Par david71 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/09/2005, 17h09
  3. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52
  4. Enregistrer le résultat d'une requête dans un fichier Excel
    Par Isa31 dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 14h31
  5. Mettre des donnees dans un fichier Excel
    Par Mouawad dans le forum C++Builder
    Réponses: 6
    Dernier message: 07/10/2004, 14h55

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