XL 2016 Une formule de comparaison

ImenH

XLDnaute Nouveau
Je cherche une formule ou bien une application pour faire la comparaison entre ces deux tableaux , et me faire sortir le décalage en matière et quantité.

J'ai besoin d'un coup de main et Merci d'avance

Tableau1
produitquantité
x12
y3
z4
Tableau2
produitquantité
y4
z4
A3
Résultat souhaité

y+1
zidentique
xmanquant
Anouveau +4
 
Solution
Bonjour ImenH, JHA,

bienvenue sur le site XLD ! :)

je te propose le fichier Excel joint ci-dessous.

fais Ctrl e ➯ travail effectué ! 😊

VB:
Option Explicit

Sub Essai()
  Dim cel As Range, pdt$, qt1%, qt2%, m&, n&, i&, j&
  m = Rows.Count: n = Cells(m, 7).End(3).Row: j = 2
  Application.ScreenUpdating = 0
  If n > 1 Then Range("G2:H" & n) = Empty
  n = Cells(m, 1).End(3).Row
  For i = 2 To n
    pdt = Cells(i, 1): Cells(j, 7) = pdt
    Set cel = Columns(4).Find(pdt, , -4163, 1, 1)
    If Not cel Is Nothing Then
      qt1 = Cells(i, 2): qt2 = cel.Offset(, 1)
      Cells(j, 8) = IIf(qt1 = qt2, "identique", Format(qt2 - qt1, "+0;-0"))
    Else
      Cells(j, 8) = "manquant"
    End If
    j = j + 1
  Next i
  n =...

JHA

XLDnaute Barbatruc
Bonjour à tous,

Dommage que ce soit moi qui réalise le fichier excel
Format de nombe en B14:B17
Code:
[=0]"Identique";0
Formule à essayer en B14
VB:
=SI(ESTNUM(EQUIV($A14;$A$8:$A$10;0));SI(ESTNUM(EQUIV($A14;$A$3:$A$5;0));INDEX($B$8:$B$10;EQUIV($A14;$A$8:$A$10;0))-INDEX($B$3:$B$5;EQUIV($A14;$A$3:$A$5;0));"Nouveau +"&INDEX($B$8:$B$10;EQUIV($A14;$A$8:$A$10;0)));"Manquant")

JHA
 

Pièces jointes

  • Classeur ImenH.xlsx
    9.6 KB · Affichages: 16

soan

XLDnaute Barbatruc
Inactif
Bonjour ImenH, JHA,

bienvenue sur le site XLD ! :)

je te propose le fichier Excel joint ci-dessous.

fais Ctrl e ➯ travail effectué ! 😊

VB:
Option Explicit

Sub Essai()
  Dim cel As Range, pdt$, qt1%, qt2%, m&, n&, i&, j&
  m = Rows.Count: n = Cells(m, 7).End(3).Row: j = 2
  Application.ScreenUpdating = 0
  If n > 1 Then Range("G2:H" & n) = Empty
  n = Cells(m, 1).End(3).Row
  For i = 2 To n
    pdt = Cells(i, 1): Cells(j, 7) = pdt
    Set cel = Columns(4).Find(pdt, , -4163, 1, 1)
    If Not cel Is Nothing Then
      qt1 = Cells(i, 2): qt2 = cel.Offset(, 1)
      Cells(j, 8) = IIf(qt1 = qt2, "identique", Format(qt2 - qt1, "+0;-0"))
    Else
      Cells(j, 8) = "manquant"
    End If
    j = j + 1
  Next i
  n = Cells(m, 4).End(3).Row
  For i = 2 To n
    pdt = Cells(i, 4): Set cel = Columns(1).Find(pdt, , -4163, 1, 1)
    If cel Is Nothing Then
      Cells(j, 7) = pdt: Cells(j, 8) = "nouveau ; " & Cells(i, 5): j = j + 1
    End If
  Next i
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
 

Pièces jointes

  • Exo ImenH.xlsm
    16.3 KB · Affichages: 4
Dernière édition:

Discussions similaires

Réponses
20
Affichages
614