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 :

échange de données entre deux fichiers excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 16
    Points
    16
    Par défaut échange de données entre deux fichiers excel
    Salut à tous,

    j'ai un fichier excel qu'on appellera maitre et un autre esclave.

    Dans esclave, j'ai un tableau.

    Lorsque je clique sur un bouton sur le fichier maitre, j'aimerai lancer une macro qui va chercher certaines valeurs du tableau du fichier esclave.

    N'étant qu'un débutant en VBA je n'ai malheureusement que ce bout de code à vous présenter :

    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
     
     
    Sub Miseajour()
     
      Dim maitre  
      Set maitre = Workbooks(1).Sheets(2)
      InL = maitre.Cells.SpecialCells(xlCellTypeLastCell).Row
      InC = maitre.Cells.SpecialCells(xlCellTypeLastCell).Column
     
     
      Dim ExcelApp As Excel.Application
      Set ExcelApp = New Excel.Application
     
    With ExcelApp
     
            .Workbooks.Open Filename:="lechemindacces\Nouveau dossier\esclave.xls"
            InLex = .Sheets(2).Cells.SpecialCells(xlCellTypeLastCell).Row
            InCex = .Sheets(2).Cells.SpecialCells(xlCellTypeLastCell).Column
     
            For L = 2 To InLex
                If (.Sheets(2).Cells(L, 1).Interior.ColorIndex = 3) Then
     
                    maitre.Range(Cells(InL, 1), Cells(InL, InCex)) = .Sheets(2).Range(Cells(L, 1), Cells(L, InCex))
     
                End If
            Next
     
        End With
     
        ExcelApp.Quit
     
        Set ExcelApp = Nothing
     
    End Sub
    Merci à tous pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Après avoir fouillé sur le web j'en suis arrivé à ce code :

    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
     
     
    Sub miseajour()
     
       Dim maitre, esclave
     
       Dim AppliExcel As Excel.Application
       Set AppliExcel = New Excel.Application
       Set esclave = Workbooks(1).Sheets(14)
       AppliExcel.Workbooks.Open ("...\maitre")
       Set maitre = AppliExcel.ActiveWorkbook.Sheets(2)
     
       InLex = maitre.Cells.SpecialCells(xlCellTypeLastCell).Row
       InCex = maitre.Cells.SpecialCells(xlCellTypeLastCell).Column
       InL = esclave.Cells.SpecialCells(xlCellTypeLastCell).Row
       InC = esclave.Cells.SpecialCells(xlCellTypeLastCell).Column
     
     
       For L = 2 To InLex
        If (maitre.Cells(L, 1).Interior.ColorIndex = 3) Then
     
     
              esclave.Range(Cells(InL, 1), Cells(InL, InCex)) = maitre.Range(Cells(L, 1), Cells(L, InCex))
     
     
     
        End If
       Next
     
     
       AppliExcel.ActiveWorkbook.Close
       AppliExcel.Quit
     
    End Sub
    Mais j'ai l'erreur :

    Erreur d'execution 1004
    Erreur définie par l'application ou l'objet


    Une idée ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Problème résolu, la ligne de code pour copier est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    esclave.Cells(Inl, C).Value = maitre.Cells(L, C).Value
    en intégrant cette ligne dans une boucle qui fait évolué la valeur C

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

Discussions similaires

  1. Copie de données entre deux fichiers Excel
    Par qltmi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2008, 19h20
  2. Récupération de données entre 2 fichiers Excel
    Par akrev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2007, 21h38
  3. extraction de données entre 2 fichiers excels
    Par jackbauer972 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/06/2007, 14h02
  4. [VBA-E] Transfert D'images Entre Deux Fichiers Excel
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2007, 14h43
  5. copie de données entre 2 fichiers excel
    Par kalu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2006, 17h31

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