Comparaison de 3 dimensions par rapport à 3 autres
Bonjour,
Je suis toujours aussi mauvais en VBA (mais je me soigne !), c'est pour cela que je fais appel à vous et vos connaissances en la matière.
Je cherche à comparer les dimensions des références de la feuille "Références à ranger" avec celle de la feuille "Dimensions Cases". Attention, il y a une petite subtilité à savoir qu'en colonne E de la feuille "Références à ranger", se trouvent les quantités à ranger par référence.
Donc, vous l'aurez probablement compris, il faudrait en plus de la comparaison des dimensions, avoir comme résultat dans les colonnes F et G de cette même feuille, la case la plus appropriée (celle dont la quantité et directement supérieure à ma quantité à caser) ainsi que la quantité calculée
Bonjour,
Voici un petit coup de pouce mais ensuite pour la réflexion, etc c'est pour vous:
Sub compare()
For i = 2 To ActiveWorkbook.Sheets("Références à ranger").UsedRange.Rows.Count
If ActiveWorkbook.Sheets("Références à ranger").Cells(i, 1) = "" Then
Exit Sub
End If
For y = 2 To ActiveWorkbook.Sheets("Dimensions Cases").UsedRange.Rows.Count
If ActiveWorkbook.Sheets("Références à ranger").Cells(i, 2) <= ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 2) And ActiveWorkbook.Sheets("Références à ranger").Cells(i, 3) <= ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 3) And ActiveWorkbook.Sheets("Références à ranger").Cells(i, 4) <= ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 4) Then
If Not ActiveWorkbook.Sheets("Références à ranger").Cells(i, 6) = "" Then
For j = 2 To ActiveWorkbook.Sheets("Dimensions Cases").UsedRange.Rows.Count
If ActiveWorkbook.Sheets("Références à ranger").Cells(i, 6) = ActiveWorkbook.Sheets("Dimensions Cases").Cells(j, 1) Then
If ActiveWorkbook.Sheets("Dimensions Cases").Cells(j, 2) <= ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 2) And ActiveWorkbook.Sheets("Dimensions Cases").Cells(j, 3) <= ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 3) And ActiveWorkbook.Sheets("Dimensions Cases").Cells(j, 4) <= ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 4) Then
ActiveWorkbook.Sheets("Références à ranger").Cells(i, 6) = ActiveWorkbook.Sheets("Dimensions Cases").Cells(j, 1)
Else
ActiveWorkbook.Sheets("Références à ranger").Cells(i, 6) = ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 1)
End If
Exit For
End If
Next j
Else
ActiveWorkbook.Sheets("Références à ranger").Cells(i, 6) = ActiveWorkbook.Sheets("Dimensions Cases").Cells(y, 1)
End If
End If
Next y
Next i
End Sub
Bon courage
Tenez moi informé de l'évolution
Bonjour,
Une solution en pièce jointe.
Nota : :
Pour la simplicité de la programmation et la clarté de la démonstration :
J'ai rajouté les colonnes (Volume)
et déplacé la colonne hauteur des cases
et nommée les plages BDRef et BDCase
et trié les BD de la manière la plus favorable...
Mais ce n'est pas absolument indispensable :
On pourrait s'amuser à faire tous les calculs en VBA mais là tu aurais sans doute du mal à suivre !
A+