Récupérer des données face à des valeurs identiques

Bonjour,

Je réalise un programme où j'insère deux classeurs Excel. Je compare entre eux les données de la colonne nom, puis je récupère les noms en commun.
Puis je souhaite récupérer :
une donnée A du classeur 1 par rapport au nom du projet
une valeur B du classeur 2 par rapport au nom du projet

Pour citer un exemple pour mieux comprendre mon projet, c'est comme si je souhaitais récupérer la somme totale d'un ticket de caisse.

Feuille 1 Le client a acheté Pomme : 2, Pomme : 1, Pomme : 1, Banane : 3, Poire : 4 .

Ma feuille 2 résume les prix. Pomme : 30, Poire : 20, Banane : 25.

Et je souhaite dans une feuille 3 la somme totale, avec comme résultat : Nom de l'article, la quantité, le prix, la somme

image

//fin de l'exemple

Pour le moment j'atteins cette partie mais le soucis est que le classeur 1 répète plusieurs fois les noms de projets. Du coup, lorsque je compare pour récupérer les valeurs B, il va récupérer pour un projet mais va ignorer mon deuxième projet de même nom. De plus, cela fait décaler les données.

Exemple du problème :

image

Alors que nous devrions plutôt avoir

image

Mon code ci dessous :

Private Sub CommandButton3_Click()

ligne1 = 2
ligne2 = 2
n = 2
m = 2

For j = ligne1 To 10000 Step 1

    nom = Feuil1.Cells(j, 5)
    If nom <> "" Then

    'compare les noms de la feuille 1 avec la feuille 2

        If Feuil2.Range("C:C").Find(nom) Is Nothing Then
        Else

            'place le nom du projet

            Feuil3.Cells(n, 1).Value = Feuil1.Cells(j, 5).Value

            'place le temps d'heures sur le projet

            Feuil3.Cells(n, 2).Value = Feuil1.Cells(j, 10).Value
            n = n + 1
        End If

    End If
Next j

For k = ligne2 To 10000 Step 1

    nom = Feuil2.Cells(k, 3)
    If nom <> "" Then

        'compare les noms de la feuille 2 avec la feuille 3

        If Feuil3.Range("A:A").Find(nom) Is Nothing Then

        Else
            'ajoute le prix du projet par rapport à son nom
            Feuil3.Cells(m, 3).Value = Feuil2.Cells(k, 2).Value
            m = m + 1
        End If

    End If
Next k

End Sub

Merci d'avance pour vos réponses !

Bonne journée à vous,

Bonjour

Merci de revoir ton profil pour préciser ta version Excel (forcément éditée par Microsoft...)

Plutôt du domaine de PowerQuery que VBA mais avec des images...

Bonjour,

Profil mis à jour !

Bonjour

Comme dit c'est plutôt du domaine de PowerQuery, intégré à Excel, mais sur des images qui de plus n'illustrent que partiellement le discours on ne peut guère avancer

Rechercher des sujets similaires à "recuperer donnees face valeurs identiques"