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+

13casage-vg1.xlsm (19.57 Ko)
Rechercher des sujets similaires à "comparaison dimensions rapport"