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 :

travailler avec 3 classeurs excell [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut travailler avec 3 classeurs excell
    Bonjour,
    j'aimerais copier les données d'un classeur A vers un classeur B sachant que ces deux classeurs sont fermés (c'est à dire que ma macro vba est enregistré sur un autre classeur C qui est ouvert quant à lui).
    J'écrit le code suivant:


    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
    Sub copier3classeur()
     
    Dim dossier As Object, Fichier As Object, Chemin As String, Lg As Integer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    Chemin = ThisWorkbook.Path
     
    Workbooks.Open Filename:=Chemin & "/" & "classeurA.xls"
    Workbooks.Open Filename:=Chemin & "/" & "classeurB.xls"
    Lg = Range("A65536").End(xlUp).Row + 1
     
     
    With Workbooks("classeurB.xls")
        .Sheets("Feuil1").Range("A3:O" & Range("A65536").End(xlUp).Row + 1).Copy
        Workbooks("classeurA.xls").Worksheets("Feuil1").Range("A" & Lg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    .Close
    End With
     
     
    Application.DisplayAlerts = True
    End Sub

    Mais ça ne fonctionne pas
    Quelqu'un peut m'aider???

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Bonjour et bonnes fêtes.

    je pense que si au préalable tu activait tes différents documents, ta macro fonctionnerait mieux.
    Il faut faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Workbooks("classeurB.xls").activate
    With Workbooks("classeurB.xls").Sheets("Feuil1")
         .activate
         [...].copy
    End With    
     
    Workbooks("classeurA.xls").activate
    With Workbooks("classeurA.xls").Sheets("Feuil1")
         .activate
         [...].PasteSpecial [...]
    End With
    Cordialement.

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Je doute que tu puisses ouvrir un classeur avec cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:=Chemin & "/" & "classeurA.xls"
    Le PathSeparator sous Windows est le "\".
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut reponse
    Bonjour,
    la commande que j'utilise pour ouvrir mes fichiers marche à merveille.
    Cependant Malgré les activations, rien n'est copié dans le classeur prévu. les fichiers s'ouvrent mais ne sont pas copiés. j'en suis toujurs au même point.


  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    tiens c'est noël ...

    Il faut éviter les "Activate" , "Select" ... , toujours préciser devant les objets Range, Cells, Sheets de quel classeur ou qu'elle feuille il s'agit...

    pour cela tu peu utiliser une variable de type Workbook pour chacun de tes deux 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
    Option Explicit
     
    Sub copier3classeur()
     
    Dim dossier As Object, Fichier As Object, Chemin As String, Lg As Integer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
    Dim wkA As Workbook
    Dim wkB As Workbook
     
    Chemin = ThisWorkbook.Path
     
    Set wkA = Workbooks.Open(Filename:=Chemin & "/" & "classeurA.xls")
    Set wkB = Workbooks.Open(Filename:=Chemin & "/" & "classeurB.xls")
     
    Lg = wkA.Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1 'Derniére ligne feuille 1 fichier A
     
     
     
    With wkB.Sheets("Feuil1")
        .Range("A3:O" & .Range("A65536").End(xlUp).Row + 1).Copy
        wkA.Worksheets("Feuil1").Range("A" & Lg).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    '.Close
    End With
     
     'Ferme les 2 classeurs en sauvant
     wkA.Close True
     wkB.Close True
     
     
    Application.DisplayAlerts = True
    End Sub

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut solution
    j'ai fini par trouver une solution.

    je copie le classeur A dans Thisworkbook et ensuite je copie Thisworkbook dans le classeur B.

    Ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Workbooks.Open Filename:=Chemin & "/" & "classuerB.xls"
     
     Workbooks("classuerB.xls").Sheets("Feuil1").Range("A3:O" & Range("A65536").End(xlUp).Row + 1).Copy
     ThisWorkbook.Sheets("Feuil1").Range("A" & Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
     
    ThisWorkbook.Sheets("Feuil1").Range("A1:O" & Range("A65536").End(xlUp).Row + 1).Copy
     
    Workbooks.Open Filename:=Chemin & "/" & "ClasseurA.xls"
     
    Workbooks("ClasseurA.xls").Sheets("Feuil1").Range("A" & Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

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

Discussions similaires

  1. Liaison d'une table avec un classeur Excel
    Par Mors_Ubyte dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/06/2008, 13h12
  2. Restaurer la liaison avec un classeur Excel
    Par Mors_Ubyte dans le forum VBA Access
    Réponses: 0
    Dernier message: 04/06/2008, 14h06
  3. Travailler avec des classeurs fermés
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 19/02/2008, 14h28
  4. [Excel] Travailler avec un document
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/05/2006, 12h49
  5. [VBA-E]travail sur deux classeurs excel
    Par richou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/04/2006, 10h59

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