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 :

Simplifier un code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Simplifier un code
    Bonjour à tous,

    A l'aide de l'éditeur de macros, j'ai fait fait cette procédure.

    Avant d'enregistrer une feuille celle-ci doit être mise en page, c'est-à-dire

    - Mettre les marges à zéro
    - Centrer verticalement et horizontalement
    - Ajuster à une page en largeur et hauteur

    Je souhaite donc le simplifier, car je me doute qu'il y a des choses inutiles à inscrire, pouvez-vous m'apporter votre aide s'il vous plait ?

    Merci par avance

    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
     
        Range("Q2:Q9").Select
        Selection.ClearContents
        Range("A1").Select
        With ActiveSheet.PageSetup
            .PrintTitleRows = ""
            .PrintTitleColumns = ""
        End With
        ActiveSheet.PageSetup.PrintArea = "$A$1:$N$72"
        With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0)
            .RightMargin = Application.InchesToPoints(0)
            .TopMargin = Application.InchesToPoints(0)
            .BottomMargin = Application.InchesToPoints(0)
            .HeaderMargin = Application.InchesToPoints(0)
            .FooterMargin = Application.InchesToPoints(0)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlPortrait
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            .PrintErrors = xlPrintErrorsDisplayed
        End With
    End Sub

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range("Q2:Q9").ClearContents
    le Range("A1").Select
    dépend de ce que tu veux faire
    suivit de
    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
    With ActiveSheet.PageSetup
            .PrintTitleRows = ""
            .PrintTitleColumns = ""
            .PrintArea = "$A$1:$N$72"
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0)
            .RightMargin = Application.InchesToPoints(0)
            .TopMargin = Application.InchesToPoints(0)
            .BottomMargin = Application.InchesToPoints(0)
            .HeaderMargin = Application.InchesToPoints(0)
            .FooterMargin = Application.InchesToPoints(0)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlPortrait
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            .PrintErrors = xlPrintErrorsDisplayed
        End With
    Pour la deuxième partie beaucoup de chose peuvent être retiré telque les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
    qui gèrent le remplissage des entête et pied de pages.
    surtout que tu ne dit de ne pas les imprimer avec
    Mais là on ne peux pas savoir si c'est là pour effacer des entête qui existe. Là ca va être a toi de regarder les option qui t'intéresse vraiment dans ton cas particulier et pour cela rien ne vaut la touche F1

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Merci pour ta réponse. Je veux juste faire une mise en page, pas d'impression.
    Après la mise en page, fermeture du fichier en sauvegardant les modifs.

    Je pense pouvoir me débrouiller pour la suite.

    Sinon je sais où appeler au secours.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    me revoilous,

    Je n'arrive pas à insérer le code ci-dessus dans celui-ci. La procédure doit être activée avant l'ouverture du fichier "Factures". C'est-à-dire là où j'ai mis ces astérisques *

    Mettre en page la feuille avant sa fermeture comme indiquée ci-dessus.

    Pouvez-vous m'apporter votre éclairage s'il vous plait ?
    Merci par avance

    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
    Private Sub Sauv1_Click()
    
    'une copie de la page en cours est faite puis enregistrée
    
    Cells.Select
        Selection.Copy
            Workbooks.Add
            ActiveSheet.Paste
        Application.Dialogs(xlDialogSaveAs).Show ("S:\FORMULAIRES\BON DE COMMANDE\BC 2009")
            ActiveSheet.PageSetup.PrintArea = "$A$1:$N$72"
            Application.ExecuteExcel4Macro "page.setup(,,0.00,0.00,0.00,false,false,1,1,1,,100,,1,,0.00,0.00,,)"
    ******
    'le répertoire "Factures" est activé. Dans la feuille BC1 est sélectionnée
        Windows("Factures.xls").Activate
            Sheets("BC1").Select
    
    'on sélectionne les cellules suivantes pour en effacer le contenu        Range("B25,G6,H14,N11,N17,N15,N19,B24,A28:A55,N24,I28:I55,J28:J55,K28:K55").Select
            Selection.ClearContents
        Range("A1").Select
            
    'la feuille BC1 est cachée et la feuille engagement est activée
    
    Sheets("BC1").Visible = False
            Sheets("Engagements").Activate
    End Sub

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour à tous,

    Je ne suis toujours pas parvenu à trouver la solution à mon problème.
    L'enregistrement se fait bien, mais pas la mise en page. J'ai donc remis mon code comme au point de départ, sans mise en page et je vais aviser.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    La feuille de ton classeur principal (où est situer la macros) est-t-elle déja mise en forme ?

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

Discussions similaires

  1. [E-00] Utilisation d'un auxilliaire pour simplifier le code
    Par anyah dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 21/11/2008, 17h31
  2. Simplifier le code
    Par Msieurduss dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 10h07
  3. Réponses: 4
    Dernier message: 10/05/2008, 12h31
  4. Simplifier mon code "Majuscule/Minuscule"
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2008, 17h05
  5. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15

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