Comparaison entre 2 feuilles et copie d'informations dans une 3ème

Bonjour tout le monde

Après plusieurs jours à m'arracher les cheveux je sollicite votre aide !

Alors je tiens à préciser que je n'ai aucune base en VBA je me suis auto-formée après qu'on m'ait confié une petite macro à faire mais pas assez bien car je ne trouve pas ou est mon erreur dans mon code

Donc je vais essayer de vous expliquer ce que j'essaie de faire et si quelqu'un réussit à m'aider MERCI !!!

Alors je pars de deux feuilles de calculs "1" et "2", chaque ligne correspond à une tache identifiée par une clé se trouvant soit en colonne B pour la feuille 1 soit en colonne G pour la 2. Toute les taches se trouvant dans la feuille "2" le sont aussi dans la feuille "1" et est identifié par la même clé.

Je cherche donc à trouver les taches manquantes dans la feuille "2" en comparant donc le paramètre clé et à à les ajouter dans la 3éme feuille en y copiant seulement certaines informations à partir de la feuille "1".

Voici en PJ ce que j'ai écrit pour le moment mais ça me donne "Une erreur d'exécution 1004 : erreur définie par l'application ou par l'objet". En debuguant pas à pas ça m'indique l'erreur au niveau de "Selection.Copy" mais je ne vois pas pourquoi car j'ai déjà effectuer un copier-coller de cette façon dans une autre macro

Encore merci à qui voudra bien m'aider !

20code.txt (1.98 Ko)

Slt Mzelle_Kelly ,

on a besoin de ton fichier

Bonjour et bienvenue,

Comme souligné par m3ellem1 (que je salue), un fichier serait un plus pour t'apporter une aide adaptée.

Sinon, ci-dessous, ta procédure revisitée (de ce que j'ai cru comprendre).

A te relire.

Cdlt.

Sub Macro()
Dim wb As Workbook
Dim ws As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim lRow As Long, lRow2 As Long, rw As Long

    Set wb = ActiveWorkbook

    Set ws = wb.Worksheets("1")
    lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row

    Set ws2 = wb.Worksheets("2")
    lRow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row

    Set ws3 = wb.Worksheets("3")

    rw = 3

    For i = 6 To lRow
        For j = 3 To lRow2
            If ws.Cells(i, 2).Value <> ws2.Cells(lRow2, 7).Value Then
                ws3.Cells(rw, 1).Value = ws.Cells(i, 2).Value
                ws3.Cells(rw, 2).Value = ws.Cells(i, 1).Value
                ws3.Cells(rw, 3).Resize(, 3).Value = ws.Cells(i, 3).Resize(, 3).Value
                rw = rw + 1
            End If
        Next j
    Next i

End Sub

Merci pour vos réponses !

La je n'ai pas le fichier sous la main car il se trouve sur mon ordi de boulot mais je testerai ce code demain à la première heure !

Je reviendrai vers vous pour vous dire ce que ça a donné ! 😉

Bonjour et bienvenue sur le forum

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

11classeur1-v1.xlsm (22.18 Ko)

Bonjour tout le monde

Non ce n'est pas vraiment ça mais merci quand même gmb ^^

Jean-Eric j'ai essayé d'adapter ton code à mon cas mais sans aucune annotations j'ai un peu de mal !

Voici un exemple de fichier : les feuilles 1 et 2 sont en faites des extractions, leur nombre de ligne est donc aléatoires !

10fichier.xlsm (19.83 Ko)

Bonjour,

Une proposition à étudier.

Toutes les données on été mises sous forme de tableaux (structurés).

A te relire.

11fichier.xlsm (29.31 Ko)

Me revoilà !

Merci Jean-Eric pour ton aide j'ai gardé ton 1er code et je l'ai adapté à mon cas !

Je n'ai pas mis les données sous forme de tableau car le résultat obtenu vas ensuite être ré utilisé dans une autre macro donc on préfère pour le moment laisser sous forme de feuille et faire la structuration à la fin !

Après une aprem de bidouillage j'arrive presque au but !

J'ai donc tester le code que j'ai adapté ça marche ça me déplace les info dans les bonnes cases mais malheureusement ma condition ne marche pas

Dans mes feuilles 1 et 2 j'ai mis 4 taches, 2 ont une clé commune , lorsque je fais

If ws.Cells(i, 2).Value <> ws2.Cells(lRow2, 7).Value

les 4 taches sont recopiées dans la feuille 1 alors que je ne devrais avoir que les 2 avec la clé commune !

Ma clé est de la forme XXXXX-145275

jJe me suis donc dit que c'étais peut être le terme .Value qui ne collait pas j'ai donc essayé avec .Text mais sans succès !

Rechercher des sujets similaires à "comparaison entre feuilles copie informations 3eme"