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 :

Simplification d'écriture VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut Simplification d'écriture VBA
    Bonjour,

    Quelqu'un a-t-il une idée pour écrire ce code plus proprement?

    L'objectif étant de copier 4 plages d'une feuille sur un autre classeur. J'aimerai éviter de faire des aller-retours entre les 2 classeurs.

    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
    84
    85
    86
    87
    88
    'ouvrir Commande de base
     Workbooks.Open Filename:= _
            "Y:\BASE DOCUMENT\BASE TECHNIQUE\COMMANDE DE BASE.xlsm"
     
        'Retour sur création commande
        Windows("CREATION DE COMMANDE.xlsm").Activate
     
     
         'Copie des cellules de la nomenclature page1
     
        Range("A2:M42").Copy
     
     
        'Retour sur la commande à éditer
        Windows("COMMANDE DE BASE.xlsm").Activate
     
     
       'Coller sur page 1
     
        Range("A2").Select
        ActiveSheet.Paste
     
     
         'Retour sur création commande
        Windows("CREATION DE COMMANDE.xlsm").Activate
     
     
         'Copie des cellules de la nomenclature page2
     
        Range("A43:M75").Copy
     
     
        'Retour sur la commande à éditer
        Windows("COMMANDE DE BASE.xlsm").Activate
     
     
       'Coller sur page 2
     
        Range("A47").Select
        ActiveSheet.Paste
     
             'Retour sur création commande
        Windows("CREATION DE COMMANDE.xlsm").Activate
     
     
         'Copie des cellules de la nomenclature page3
     
        Range("A76:M108").Copy
     
     
        'Retour sur la commande à éditer
        Windows("COMMANDE DE BASE.xlsm").Activate
     
     
       'Coller sur page 3
     
        Range("A84").Select
        ActiveSheet.Paste
     
     
        'Retour sur création commande
        Windows("CREATION DE COMMANDE.xlsm").Activate
     
     
         'Copie des cellules de la nomenclature page4
     
        Range("A109:M141").Copy
     
     
        'Retour sur la commande à éditer
        Windows("COMMANDE DE BASE.xlsm").Activate
     
     
       'Coller sur page 3
     
        Range("A121").Select
        ActiveSheet.Paste
     
     'Enrgistrer sous nom de commande
     
        Dim C2 As String
        Dim E2 As String
        C2 = Range("C2").Value
        E2 = Range("E2").Value
        ActiveWorkbook.SaveAs Filename:="Y:\BASE DOCUMENT\BASE TECHNIQUE\COMMANDES Excel\" & "Commande N°" & C2 & " - " & E2 & ".xlsm"
        Range("C2").Select
        'Application.CutCopyMode = False
        'Selection.ClearContents

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    a adapter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("A").sheets("sh1").range("range1").copy destination:= workbooks("B").sheets("sh2").range("range2").

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    n’aère pas ton code avec des retour à la ligne ça le rend illisible!

    si un de mes developpeur me retourne un code ou l'utilisation de la barre de défilement est obligatoire pour lire une méthode dans son intégralités, je la mets au rebut!

    Workbooks.Add me permet d'utiliser un fichier existant comme modèle, donc pas de risque de le sauvegarder par erreur!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set wb = Windows("CREATION DE COMMANDE.xlsm")
    With Workbooks.Add("Y:\BASE DOCUMENT\BASE TECHNIQUE\COMMANDE DE BASE.xlsm")  'ouvrir Commande de base
        wb.Sheets("page1").Range("A2:M42").Copy .Range("A2")  'Copie des cellules de la nomenclature page1 dans A2 de COMMANDE DE BASE.xlsm
        wb.Sheets("page2").Range("A43:M75").Copy .Range("A47") 'Copie des cellules de la nomenclature page2 dans A47 de COMMANDE DE BASE.xlsm
        .SaveAs Filename:="Y:\BASE DOCUMENT\BASE TECHNIQUE\COMMANDES Excel\" & "Commande N°" & C2 & " - " & E2 & ".xlsm", FileFormat:=  xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        .Close False
    End With
    Dernière modification par Invité ; 25/01/2017 à 13h35.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut
    Super, merci

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

Discussions similaires

  1. Simplification de code VBA Excel
    Par RAID14 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/03/2012, 15h26
  2. Problème d'écriture vba
    Par UDSP50 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/01/2012, 18h32
  3. Réponses: 0
    Dernier message: 12/02/2010, 16h03
  4. [AC-2003] questions d'écriture VBA
    Par bodd984 dans le forum VBA Access
    Réponses: 7
    Dernier message: 29/07/2009, 17h45
  5. Héritage et simplification d'écriture
    Par franco01 dans le forum C++
    Réponses: 7
    Dernier message: 17/02/2006, 10h48

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