Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
616
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…