Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

Excel: comparaison de cellules et copie de données entre 2 classeurs



  1. #1
    chrisgnomes

    Excel: comparaison de cellules et copie de données entre 2 classeurs


    ------

    Bonjour à tous,

    Petit nouveau sur le forum, je cherche une méthode pour comparer des données de cellules et en copier d'autres si la comparaison est bonne.
    J'essaie de m'expliquer le plus clairement possible:

    J'ai deux fichiers excel que je vais nommer Excel1 et Excel2.
    Dans Excel 1 j'ai un type d'information qui correspond à une référence en colonne F, ces mêmes références sont en colonne C dans Excel2
    Dans le cas ou la référence est présente dans les deux fichiers, je souhaiterais copier des informations issues de différentes colonnes de la ligne du fichier Excel2 ou est présente le référence vers d'autres colonne du fichier Excel1 sur la ligne ou est présente cette référence également.

    Pour faire plus claire:
    Prenons la référence ABCDEF qui est présente en F10 sur Excel1 et en C25 sur Excel2. Je souhaiterai dans ce cas, copier automatiquement les valeurs des cellules V25, X25, Z25 et AA25 d'Excel2 respectivement vers les cellules Y10, AA10, AC10 et AD10 d'Excel1

    Sachant que le fichier Excel2 est généré automatiquement tout les jours et que les lignes où se trouve la référence change presque à chaque fois, la comparaison est donc à refaire systématiquement.
    C'est à dire que demain, mon exemple deviendrait peut-être:

    Prenons la référence ABCDEF qui est présente en F10 sur Excel1 et en C40 sur Excel2. Je souhaiterai dans ce cas, copier automatiquement les valeurs des cellules V40, X40, Z40 et AA40 d'Excel2 respectivement vers les cellules Y10, AA10, AC10 et AD10 d'Excel1

    Le but étant que Excel1 soit toujours à jours avec les évolutions de données d'Excel2

    Le fichier Excel1 comporte environ 500 lignes et le fichier Excel2 32000, voilà pourquoi cela n'est pas possible "manuellement"

    Espérant avoir été claire dans mes explications et qu'il existe une solution.....

    Merci d'avance,

    -----

  2. Publicité
  3. #2
    Dormeur74

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    En gros, quelques fils plus bas dans la même page tu vas trouver la solution que j'ai donnée à Maxwell27. Vos deux besoins me semblent tellement proches que...bon je déborde d'imagination.

  4. #3
    yoda1234

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Citation Envoyé par Dormeur74 Voir le message
    Vos deux besoins me semblent tellement proches que...bon je déborde d'imagination.
    Je n'y crois pas un seul instant....
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  5. #4
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Merci dormeur74, malheureusement, je ne pense pas que nos besoins soient les mêmes avec Maxwell27, lui veut copier une valeur dans la même colonne, alors que mois, c'est dans des colonnes différents sous conditions qu'une valeur d'autres colonnes soit identique.....

  6. #5
    Dormeur74

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Détrompe-toi chrisgnomes, ton besoin est sensiblement identique à celui de Maxwell27.
    Je reformule ton besoin tel que je l'ai compris.

    On charges Excel1 et on clique sur la cellule F10 contenant "ABCDE". On va chercher le numéro de la ligne de la colonne C du classeur excel2.xls contenant "ABCDE". On trouve 25. On recopie le contenu des cellules V25, X25, Z25 et AA25 vers Y10, AA10, AC10 et AD10.

    Ce qui m'intéresse le plus est de savoir comment on désigne le contenu de la cellule F10 (on clique dessus ou on passe par une boîte de dialogue ?).

  7. A voir en vidéo sur Futura
  8. #6
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    En fait, la référence "ABCDE" est déjà présente dans Excel1 en F quelque chose et dans Excel2 en C quelque chose, c'est une donnée invariable des deux tableaux (en dehors de sa ligne de "position", la colonne sera toujours la même, F dans Excel1 et C dans Excel2)
    Le but étant de ne cliquer nul part, mais d'avoir une mise à jours automatique à l'ouverture du fichier.

    Ce que je cherche, c'est remplir automatiquement les cellules des colonnes Y, AA, AC et AD d'Excel1 en reprenant les valeurs des cellules V, X, Z et AA d'Excel2 à partir du moment ou la valeur en F quelque chose d'Excel1 est trouver à la ligne X de la colonne C d'Excel2.

    Ce qui donnerait en reprenant l'exemple:
    "X"--> Numéro de ligne dans Excel2
    "Y"--> Numéro de ligne dans Excel1

    Référence AAAAA trouvé en ligne "Y" dans la colonne F d'Excel1 et en ligne "X" dans la colonne C d'Excel2, je souhaite dans ce cas qu'Excel copie automatiquement les valeurs (dans mon cas des dates) des colonnes V, X, Z et AA (en ligne "X") d'Excel2 dans les colonnes Y, AA, AC, AD (en ligne "Y") d'Excel1
    Et ainsi de suite pour les autres références AAAAB, AAAAC......

    Eventuellement, je peux copier le fichier Excel2 dans la feuil2 d'Excel1 si cela simplifie le problème.....ce qui, en y réfléchissant, serait peut-être une bonne solution pour maitriser la mise à jours d'Excel1 à volonté.

    Je ne sais pas si mes explications sont suffisamment claires.....
    Dernière modification par chrisgnomes ; 06/11/2011 à 16h00.

  9. Publicité
  10. #7
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Pour aider à la compréhension, voici un fichier test.
    Je souhaite remplir les cellules en vert de la feuil1 avec les données en rouge de la feuil2 afin d'avoir les bonnes valeurs pour chaque référence de la feuil1 en colonne F

    Merci d'avance,
    Fichiers attachés Fichiers attachés

  11. #8
    Dormeur74

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Tu aurais dû commencer par là (synchronisation de 2 fichiers). Je vois ça dans la soirée, mais te confirme que ton besoin est vraiment proche de celui de Maxwell27.

  12. #9
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Merci beaucoup dormeur74, mon besoin est certainement proche de celui de maxwell27 dans sa résolution, mais ne maitrisant pas excel pour ce type de chose, je ne suis pas capable de le dire, je te fais confiance, si tu le dis, c'est que cela est le cas....

  13. #10
    Dormeur74

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    J'ai renseigné la macro ci-dessous, pour que tu puisses en étudier la contenu.
    Ci-joint deux fichiers. Le fichier excel1.xls contient la macro.
    Une chose importante, tu dois nommer "Pointeur" la colonne C de ton tableau excel2.xls.
    Pour cela, tu sélectionnes la colonne C, tu vas dans Insertion...Nom...Définir, tu tapes Pointeur et tu valides.
    Si tu veux prendre un autre nom, tu le peux, mais il faudra modifier la macro en conséquence.

    Si tu compares ce code avec celui de Maxwell27, tu va vite te rendre compte qu'ils sont cousins-cousines. La seule grosse différence étant qu'ici on va stocker dans un tableau les valeurs recherchées dans excel2.xls pour aller plus vite.

    Code:
    Option Explicit
    
    Sub Macro1()
        Dim Cellule As Range
        Dim Excel2 As Workbook
        Dim LastLine As Integer
        Dim Tableau1() As Variant
        Dim Tableau2() As Variant
        Dim I As Integer
            
        ' On cherche le numéro de la dernière ligne utilisée dans la colonne F
        LastLine = Cells(Rows.Count, "F").End(xlUp).Row
        
        ' On redimensionne les 2 tableaux de façon dynamique
        ReDim Tableau1(LastLine)
        ' On a besoin de stocker les valeurs de 4 colonnes
        ReDim Tableau2(LastLine, 4)
        
        ' On charge le tableau avec les valeurs de la colonne F
        For I = 1 To LastLine
          Tableau1(I) = Range("F" & Trim(Str(I)))
        Next I
        
        ' On ouvre le fichier excel2.xls et on lui donne le focus
        Workbooks.Open Filename:="excel2.xls"
        Set Excel2 = ActiveWorkbook
        Excel2.Activate
        
        ' On scanne la colonne C avec les valeurs contenues dans le tableau
        For I = 1 To LastLine
            Set Cellule = ActiveSheet.Range("Pointeur").Find(Tableau1(I), lookat:=xlWhole)
            Tableau2(I, 1) = Cellule.Offset(0, 19).Value
            Tableau2(I, 2) = Cellule.Offset(0, 21).Value
            Tableau2(I, 3) = Cellule.Offset(0, 23).Value
            Tableau2(I, 4) = Cellule.Offset(0, 24).Value
        Next I
        
        'On referme le classeur excel2.xls dont on n'a plus besoin
        Excel2.Close
        
        ' On recopie le contenu du tableau dans les colonnes Y, AA, AC, AD
        For I = 1 To LastLine
          Range("Y" & Trim(Str(I))) = Tableau2(I, 1)
          Range("AA" & Trim(Str(I))) = Tableau2(I, 2)
          Range("AC" & Trim(Str(I))) = Tableau2(I, 3)
          Range("AD" & Trim(Str(I))) = Tableau2(I, 4)
        Next I
    End Sub
    Fichiers attachés Fichiers attachés

  14. #11
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Merci beaucoup Dormeur74
    Par contre, une question probablement stupide, mais quand je lance la macro, il met le message suivant:

    Erreur d'exécution '1004':
    'excel2.xls' est introuvable. Vérifier l'orthographe du nom du classeur et la validité de l'emplacement.
    ......

    Les 2 fichiers sont dans le même dossier.....

  15. #12
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    C'est bon, je n'avais pas ré-enregistré les fichiers sur mon PC à partir de mon Excel.....
    Encore merci pour ton aide, cela va me faire gagner un temps fou......


  16. Publicité
  17. #13
    Dormeur74

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Effectivement, si tu effectues un double clic directement sur excel1.xls il ne va pas trouver excel2.xls. Il le trouvera si tu charges excel1.xls sous Excel.
    Si tu veux la paix, modifie la ligne suivante :

    au lieu de :
    Workbooks.Open Filename:="excel2.xls"

    lire :
    Workbooks.Open Filename:=ActiveWorkbook.Path & "\excel2.xls"

  18. #14
    chrisgnomes

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    C'est parfait, encore merci!!!!!

  19. #15
    kikmimaru

    Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Bonjour à tous,
    Je viens de trouver cette discutions et c'est exactement ce que je chercher.
    Seulement j'ai une erreur qui s'affiche quand j'essaie de lancer:
    Erreur d’exécution 91: Variable objet ou variable de bloc with non définie

    Voici le code modifié pour mon besoin:

    Option Explicit
    Dim Cellule As Range
    Dim Excel2 As Workbook
    Dim LastLine As Integer
    Dim Tableau1() As Variant
    Dim Tableau2() As Variant
    Dim I As Integer

    Sub Macro1()


    ' On cherche le numéro de la dernière ligne utilisée dans la colonne B
    LastLine = Cells(Rows.Count, "B").End(xlUp).Row

    ' On redimensionne les 2 tableaux de façon dynamique
    ReDim Tableau1(LastLine)
    ReDim Tableau2(LastLine)

    ' On charge le tableau avec les valeurs de la colonne A
    For I = 1 To LastLine
    Tableau1(I) = Range("A" & Trim(Str(I)))
    Next I

    ' On ouvre le fichier excel2.xls et on lui donne le focus
    Workbooks.Open Filename:="R:\Affaire\8-Etudes\Données de sortie\Documents d'étude\CFO\Documents de travail\NF\Carnet de tirage du 27-04-12 TGBT ASI bloc-Bv.xls"
    Set Excel2 = ActiveWorkbook
    Excel2.Activate

    ' On scanne la colonne A avec les valeurs contenues dans le tableau
    For I = 1 To LastLine
    Set Cellule = ActiveSheet.Range("Pointeur"). Find(Tableau1(I), lookat:=xlWhole)
    Tableau2(I) = Cellule.Offset(0, 1).Value
    Next I

    'On referme le classeur excel2.xls dont on n'a plus besoin
    Excel2.Close

    ' On recopie le contenu du tableau dans la colonne D
    For I = 1 To LastLine
    Range("D" & Trim(Str(I))) = Tableau2(I)
    Next I

    End Sub


    C'est dans la partie suivante ou se trouve l'erreur:
    Set Cellule = ActiveSheet.Range("Pointeur"). Find(Tableau1(I), lookat:=xlWhole)
    Tableau2(I) = Cellule.Offset(0, 1).Value

    Cordialement

    Nicolas

  20. #16
    Moutsijet72

    Red face Re : Excel: comparaison de cellules et copie de données entre 2 classeurs

    Bonjour à tous et bravo pour votre excellence....
    j'ai un peu le problème similaire j'ai un fichier excel de référence d'article + prix dans un et de l'autre excel (excel 2) c'est celui de ma boutique internet donc il est complet avec référence différente propre a nos codes d'article en plus intégrant la ref fournisseur ( pour chercher ensuite dans le excel 1 et faire la correspondance pour l'automatiser) + prix. Je souhaiterai ajouté les références d'article du premier excel qui sont celles du fabricant en plus de celle déjà présente et le mettre avec les bon prix à jour du fabricant (excel 1) dans notre excel en sachant que notre excel 2 les lignes sont bien sure pas a la même place. J'aurais a faire ça pour 3 fournisseurs toujours dans mon excel 2 de base du site est ce que des spécialistes seraient m'aiguiller vers une solution svp ? Pour la référence fabricant de base elle est donc aussi comprise dans notre excel 2 mais assemblée encore avec nos chiffre à nous : fabricant : 18 558 excel2 : ml 258-18 558- 2251
    Peut on automatiser la recherche dans notre recherche de base ? pour mettre a jour nos prix ? merci pour vos idées et soluces.

Discussions similaires

  1. Transfert Automatique de cellules Excel vers Excel
    Par deadog182 dans le forum Logiciel - Software - Open Source
    Réponses: 25
    Dernier message: 22/01/2018, 21h55
  2. faire une liaison entre deux cellules de différents classeurs
    Par MAXWELL27 dans le forum Logiciel - Software - Open Source
    Réponses: 12
    Dernier message: 03/11/2011, 17h38
  3. Mettre à jour 2 classeurs Excel VBA
    Par stiflerbassist dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 12/07/2011, 07h48
  4. [Excel] Ecart relatif entre deux séries de données
    Par plug dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 30/04/2011, 12h46
  5. excel histoire de classeurs!
    Par sylvainj2 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 03/02/2005, 21h32
Découvrez nos comparatifs produits sur l'informatique et les technologies.