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 :

Enlever la mise en page quadrillé [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Par défaut Enlever la mise en page quadrillé
    Bonjour,
    est-ce-qu'il est possible, si oui comment, de désactivé la mise en page.

    C'est qu'une fois la mise en page pour l'impression activée cela ralentit drastiquement la vitesse d'exécution d'excel. La génération de mes feuilles qui prennent normalement 20-30 sec peut prendre 10-15 min seulement à cause de cela.

    Mais, j'ai besoin de sélectionner de façons automatique (avec du code vba) ce qui doit être imprimer dans la page. Une fois, ActiveSheet.PageSetup.PrintArea = Selection.Address utilisé, le quadrillage de mise en page apparait et réduit donc énormément la vitesse d'exécution.

    La seule façons que j'ai trouver pour le désactiver est de fermer et réouvrir excel.

    Merci de votre aide!

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Pour accélérer le processus de mise en page, j'utilise un code trouvé sur le web de Leith Ross et j'utilise l'imprimante "Microsoft XPS Document Writer" le temps de la mise en page.
    Peut-être peux-tu t'inspirer de ça ?

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Private Sub MiseEnPage()
        Dim nbLignes As Long
        Dim Fin1 As Long, Fin2 As Long
        Dim sActivePrinter As String
     
        sActivePrinter = Application.ActivePrinter
     
        nbLignes = Cells(Rows.Count, "B").End(xlUp).Row
        ActiveSheet.PageSetup.PrintArea = "$A$1:$AL$" & nbLignes
        ActiveSheet.PageSetup.PaperSize = xlPaperLegal
     
        Application.ActivePrinter = FindPrinter("Microsoft XPS Document Writer")
     
        nbLignes = Cells(Rows.Count, "B").End(xlUp).Row
     
        Range("C1").Select
        Selection.End(xlDown).Select: Fin1 = ActiveCell.Row + 1
        Selection.End(xlDown).Select
        Selection.End(xlDown).Select: Fin2 = ActiveCell.Row + 1
     
        ActiveSheet.PageSetup.PrintArea = "$A$1:$AL$" & nbLignes
        With ActiveSheet.PageSetup
            .RightFooter = "&P/&N"
            .LeftMargin = Application.InchesToPoints(0.17)
            .RightMargin = Application.InchesToPoints(0.17)
            .TopMargin = Application.InchesToPoints(0.34)
            .BottomMargin = Application.InchesToPoints(0.38)
            .HeaderMargin = Application.InchesToPoints(0.18)
            .FooterMargin = Application.InchesToPoints(0.17)
            .Orientation = xlLandscape
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = False
     
        End With
     
        'Sauts de page
        ActiveWindow.View = xlPageBreakPreview
        ActiveSheet.HPageBreaks.Add before:=Range("A" & Fin1)
        ActiveSheet.HPageBreaks.Add before:=Range("A" & Fin2)
        ActiveWindow.View = xlNormalView
     
        Application.ActivePrinter = sActivePrinter
     
    End Sub
     
     
    'Written: November 28, 2009
    'Author:  Leith Ross
    'Summary: Finds a printer by name and returns the printer name and port number.
     
    Function FindPrinter(ByVal PrinterName As String) As String
     
     'This works with Windows 2000 and up
     
        Dim Arr As Variant
        Dim Device As Variant
        Dim Devices As Variant
        Dim Printer As String
        Dim RegObj As Object
        Dim RegValue As String
     
        Const HKEY_CURRENT_USER = &H80000001
     
        Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
        RegObj.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Devices, Arr
     
        For Each Device In Devices
            RegObj.getstringvalue HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Device, RegValue
     
            If Application.International(xlCountrySetting) = 2 Then
                Printer = Device & " sur " & Split(RegValue, ",")(1)
            Else
                Printer = Device & " on " & Split(RegValue, ",")(1)
            End If
     
            If InStr(1, Printer, PrinterName, vbTextCompare) > 0 Then
                FindPrinter = Printer
                Exit Function
            End If
        Next
     
    End Function

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Par défaut
    Cela ne m'est pas vraiment utiles en fait ma mise en page ce fait bien mais lorsque celle-ci est activer, elle ralentit toutes les macros qui son utilisées par la suite sur la feuille.

    Merci de votre aide tout de même

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    J'ai dû mal comprendre...
    Tu ne peux pas faire ta mise en page à la fin des processus dont tu parles ?

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 7
    Par défaut
    En fait ce que je veux enlever c'est les quadrillés :Nom : Capture.PNG
Affichages : 421
Taille : 56,2 Ko


    En fait la mise en page qui ce forme ( je sais pas si j'utilise le bon terme) ralentit la vitesse de calcule de l'ordinateur.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.DisplayPageBreaks = False
    Tu peux aussi le faire manuellement dans le menu Options Excel / Options avancées
    Environ au centre de la partie droite, tu décoches "Afficher les sauts de page"

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

Discussions similaires

  1. comment enlever "une mise en page" sur excel ?
    Par benj91 dans le forum Excel
    Réponses: 4
    Dernier message: 12/09/2008, 18h04
  2. [CR.NET][VS.NET] mise en page et sections
    Par guignol dans le forum SDK
    Réponses: 8
    Dernier message: 06/08/2004, 15h07
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. [CR] Mise en page
    Par akolyto dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/10/2003, 12h22
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

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