Problème "identifiants" identiques mais prix différents

Bonjour, j'ai un petit problème en fait, je possède 3 fichiers un avec des identifiants et leur description respective, un fichier avec les numéros de besoins qui existent en doublon(qui correspondent à l'id du premier fichier) et les prix dans ce fichier 2, et un fichier 3 où je dois afficher ces lignes (les réunir en gros)

Je vous montre ce que j'ai pu faire grâce à quelques personnes qui ont pu m'aider mais je ne vois pas comment récupérer un prix différent pour deux identifiants pareils

voici mon code

Sub Macro1()
'
' Macro1 Macro
'

Dim i As Long, j As Long, dl1 As Long, dl2 As Long, dl3 As Long, d14 As Long
Dim plage1 As Range, plage2 As Range, plage3 As Range

         dl1 = Range("A" & Rows.Count).End(xlUp).Row 'nombre de lignes C(id de planview)
         dl2 = Range("D" & Rows.Count).End(xlUp).Row 'nombre de lignes de Q(id de sap)
         dl3 = Range("G" & Rows.Count).End(xlUp).Row + 1 'nombre de lignes de consolidation (id)

   Set plage1 = Range("A2:B" & dl1) 'plage de données dans plan view allant de C (id) et D( description)
   Set plage2 = Range("D2:E" & dl2) 'plage de données dans sap de la colonne Q(id)

   Application.ScreenUpdating = False

   If dl3 >= 2 Then Range("G2:H" & dl3).ClearContents: dl3 = 2

   For i = 2 To dl1
     If Application.CountIf(plage2, Range("A" & i)) = 0 Then    'si la valeur de C(id planview) est absente de la plage (id sap)
      Range("A" & i & ":B" & i).Interior.Color = vbRed          'lignes de planview en rouge si id planview non présent dans id sap
     Else
      Range("A" & i & ":B" & i).Interior.Color = xlNone         'pas de couleur si id identiques dans planview et sap
      Range("A" & i).Copy Range("G" & dl3)                      'copie ID en I
      dl3 = dl3 + 1
     End If
    Next
     For j = 2 To dl3 - 1
        Range("H" & j) = Application.VLookup(Range("G" & j), plage2, 2, False) 'recherche de D(id présent dans sap et planview donc affiché dans consolidation) dans plage 1(colonne c de planview)
         Range("I" & j) = Application.VLookup(Range("G" & j), plage1, 2, False) 'le problème c'est que là ça affiche le même prix pour deux identifants b ou c par exemple
    Next j

      Application.ScreenUpdating = True
End Sub

et un exemple de fichier simplifié ^^

En espérant avoir été claire, bonne journée

13classeur1.xlsm (18.98 Ko)

Salut marinea,

à tester

Sub Macro1()
Dim i, dl1, dl2, dl3 As Long
Dim plage As Range

dl1 = Range("A" & Rows.Count).End(xlUp).Row 'nombre de lignes C(id de planview)
dl2 = Range("D" & Rows.Count).End(xlUp).Row 'nombre de lignes de Q(id de sap)
dl3 = Range("G" & Rows.Count).End(xlUp).Row + 1 'nombre de lignes de consolidation (id)

Set plage = Range("D2:E" & dl2) 'plage de données dans sap de la colonne Q(id)

Application.ScreenUpdating = False

If dl3 >= 2 Then Range("G2:H" & dl3).ClearContents: dl3 = 2

   For i = 2 To dl1
     If Application.CountIf(plage, Range("A" & i)) = 0 Then    'si la valeur de C(id planview) est absente de la plage (id sap)
      Range("A" & i & ":B" & i).Interior.Color = vbRed          'lignes de planview en rouge si id planview non présent dans id sap
     Else
      Range("A" & i & ":B" & i).Interior.Color = xlNone         'pas de couleur si id identiques dans planview et sap
      Range("A" & i).Copy Range("G" & dl3)                      'copie ID en G
      Range("B" & i).Copy Range("I" & dl3)                      'copie Prix en I
      dl3 = dl3 + 1
     End If
    Next

Application.ScreenUpdating = True
End Sub

Bonne nuit

Merci beaucoup cela marche parfaitement

J'ai juste une derniere petite question, sais-tu comment faire pour copier dans une celulle une concaténation ?

Par exemple dans la celulle J2 mettre la valeur a2 et b2 côte à côte juste séparés par un espace ?

cordialement !

Re,

comme ca ?

Range("J2").value = Range("A2").value & " " & Range("B2").value

@++

Oui mais en mettant

Range("J" & i).value = Range("A"& i).value & " " & Range("B"& i).value

mais là ça me met "Propriété ou méthode non gérée par cet objet" :/

Autant pour moi j'avais oublié un range :') cela marche parfaitement x) merci à toi pour tes réponses ! bonne journéee

Rechercher des sujets similaires à "probleme identifiants identiques prix differents"