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 :

Copier une plage d'un autre fichier ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 31
    Par défaut Copier une plage d'un autre fichier ?
    Bonjour à tous,

    Est-il possible de copier des plages de cellules situées sur des classeurs fermés ?

    Je suppose qu'il y a un code pour ça (en renseignant l'emplacement du classeur), mais je n'ai rien trouvé sur l'aide d'Excel.

    Voilà ce que j'ai jusque là, vos réponses me seront trés précieuses.

    En gros c'est une mise à jour que je veux faire :

    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
     
    Sub miseajour()
    Call Histo
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("A2:A1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("B2:B1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("C2:C1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("D2:D1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("E2:E1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("F2:F1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("G2:G1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("H2:H1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("I2:I1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("J2:J1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("K2:K1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("L2:L1000").ClearContents
    Workbooks.Open Filename:="ARTICLE PR06.XLS"
    Workbooks.Open Filename:="ARTICLE PR04.XLS"
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("D10:D1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("A2").Paste
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("J10:J1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("B2").Paste
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("K10:K1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("E2").Paste
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("H10:H1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("H2").Paste
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("V10:V1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("K2").Paste
    Workbooks("ARTICLE PR04").Sheets("ARTICLE PR04").Range("D10:D1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("C2").Paste
    Workbooks("ARTICLE PR04").Sheets("ARTICLE PR04").Range("J10:J1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("D2").Paste
    Workbooks("ARTICLE PR04").Sheets("ARTICLE PR04").Range("K10:K1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("F2").Paste
    Workbooks("ARTICLE PR04").Sheets("ARTICLE PR04").Range("E10:E1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("I2").Paste
    Workbooks("ARTICLE PR04").Sheets("ARTICLE PR04").Range("H10:H1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("J2").Paste
    Workbooks("ARTICLE PR04").Sheets("ARTICLE PR04").Range("V10:V1000").Copy
    Workbooks("OADL").Sheets("Feuille_SAP_adresses").Range("L2").Paste
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("A1").Copy
    Workbooks("OADL").Sheets("Accueil").Range("D23").Paste
    Workbooks("ARTICLE PR06").Close
    Workbooks("ARTICLE PR04").Close
    End Sub

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Slt,
    oui il est possible de copier des valeurs à partir de fichiers fermés. Une petite recherche sur le site te donneras ceci
    FAQ:
    http://http://excel.developpez.com/f...lasseursFermes

    ou Tutos:
    http://http://silkyroad.developpez.c...asseursFermes/

    De plus il ya sur le forum de nombreuses réponses à cette question.
    Bonne Lecture A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 31
    Par défaut
    Merci rvtoulon mais je ne trouve pas ce que je cherche, ou je ne suis pas assez conaisseur en vba pour comprendre tes solutions.

    Donc je n'y arrive toujours pas...

    J'ai modifié ma programmation en spécifiant d'abord le chemin des fichiers ou je veux copier les plages de cellules, mais rien n'y fait...

    svp Aidez moi!
    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
     
    Sub miseajour()
    Call Histo
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("A2:A1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("B2:B1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("C2:C1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("D2:D1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("E2:E1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("F2:F1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("G2:G1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("H2:H1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("I2:I1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("J2:J1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("K2:K1000").ClearContents
    ThisWorkbook.Sheets("Feuille_SAP_adresses").Range("L2:L1000").ClearContents
    Application.Workbooks.Open "W:\SAP\OADL\EXTRACTIONS\ARTICLE PR06.xls"
    Application.Workbooks.Open "W:\SAP\OADL\EXTRACTIONS\ARTICLE PR04.xls"
    Application.Workbooks.Open "W:\SAP\OADL\EXTRACTIONS\EXPE PR06.xls"
    Windows("ARTICLE PR06.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR06").Range("D10:D1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("A2").Paste
    Windows("ARTICLE PR06.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR06").Range("J10:J1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("B2").Paste
    Windows("ARTICLE PR06.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR06").Range("K10:K1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("E2").Paste
    Windows("ARTICLE PR06.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR06").Range("H10:H1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("H2").Paste
    Windows("ARTICLE PR06.xls").Activate
    Workbooks("ARTICLE PR06").Sheets("ARTICLE PR06").Range("V10:V1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("K2").Paste
    Windows("ARTICLE PR04.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR04").Range("D10:D1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("C2").Paste
    Windows("ARTICLE PR04.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR04").Range("J10:J1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("D2").Paste
    Windows("ARTICLE PR04.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR04").Range("K10:K1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("F2").Paste
    Windows("ARTICLE PR04.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR04").Range("E10:E1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("I2").Paste
    Windows("ARTICLE PR04.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR04").Range("H10:H1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("J2").Paste
    Windows("ARTICLE PR04.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR04").Range("V10:V1000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_adresses").Range("L2").Paste
    Windows("ARTICLE PR06.xls").Activate
    ActiveWorkbook.Sheets("ARTICLE PR06").Range("A1").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Accueil").Range("D23").Paste
    Windows("EXPE PR06.xls").Activate
    ActiveWorkbook.Sheets("EXPE PR06").Range("B7:B2000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_sorties").Range("A4").Paste
    Windows("EXPE PR06.xls").Activate
    ActiveWorkbook.Sheets("EXPE PR06").Range("E7:E2000").Select
    Selection.Copy
    Windows("OADL.xls").Activate
    ActiveWorkbook.Sheets("Feuille_SAP_sorties").Range("B4").Select
    Selection.Copy
    Windows("EXPE PR06.xls").Activate
    Workbooks("EXPE PR06").Sheets("EXPE PR06").Range("G7:G2000").Select
    Selection.Copy
    ActiveWorkbook.Sheets("Feuille_SAP_sorties").Range("C4").Paste
    Workbooks("ARTICLE PR06").Close
    Workbooks("ARTICLE PR04").Close
    Workbooks("EXPE PR06").Close
    End Sub

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Remarque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuille_SAP_adresses").Range("A2:L1000").ClearContents
    suffit (moins de lignes: plus de visibilité)
    Essayes en outre d'instancier tes classeurs (et éventuellement tes feuilles)
    genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim awbk as workbook, wbk1 as workbook
    set awbk=activeworkbook
     
    Set wbk1 = Workbooks.Open("W:\SAP\OADL\EXTRACTIONS\ARTICLE PR06.xls")
    wbk1.Sheets("ARTICLE PR06").Range("J10:J1000").Copy awbk.Sheets("Feuille_SAP_adresses").Range("B2")
    à adapter
    sans select, ni activate, ni presse papier

Discussions similaires

  1. [XL-2010] combobox avec le contenu d'une plage d'un autre fichier Excel fermé
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 25/05/2015, 22h06
  2. [Toutes versions] Rechercher contenue cellule dans une plage d'un autre fichier
    Par jonathan29 dans le forum Excel
    Réponses: 2
    Dernier message: 27/04/2015, 14h40
  3. [E-2003] Copier/Coller plage cellules vers autre fichier
    Par macat dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/10/2008, 15h01
  4. [VBA-E]copier une cellule d'un autre fichier excel?
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2007, 09h29
  5. [VBA-E] pb pour copier une plage vers un autre repertoire
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/05/2007, 15h23

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