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
//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 :
Alors que nous devrions plutôt avoir
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,