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

Ventilation de valeur dans un tableau sans doublon

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

riccardovegas

XLDnaute Junior
Bonjour,
je travaille sur un nouveau projet :

la répartition de conteneur sur des wagon.

ETAPE1
J'ai une liste de wagon contenant X wagons
J'ai une liste de conteneur

je dois repartir dans chaque wagon 4 conteneur maximum
un conteneur ne peut pas être répété deux fois

fichier joint
 
Dernière édition:
Re : Ventilation de valeur dans un tableau sans doublon

Bonjour le forum, 🙂

Pour t'aider :
VB:
Option Explicit

Sub Répartition()
Dim a, b(), i As Long, n As Long, j As Long
Const Interval As Long = 4
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        a = .Range("a1", Range("a" & Rows.Count).End(xlUp)).Value
        ReDim b(1 To UBound(a, 1) \ Interval + 1, 1 To Interval)
        For i = 1 To UBound(a, 1) Step Interval
            n = n + 1
            For j = 1 To Interval
                If i + j - 1 > UBound(a, 1) Then Exit For
                b(n, j) = a(i + j - 1, 1)
            Next
        Next
        .Cells(1, "C").Resize(UBound(b, 1)).Value = Application.Index(b, 0, 1)
        .Cells(1, "E").Resize(UBound(b, 1)).Value = Application.Index(b, 0, 2)
        .Cells(1, "G").Resize(UBound(b, 1)).Value = Application.Index(b, 0, 3)
        .Cells(1, "I").Resize(UBound(b, 1)).Value = Application.Index(b, 0, 4)
        'la même chose
'        j = 2
'        For i = 1 To UBound(b, 2)
'            .Cells(1, i + j).Resize(UBound(b, 1)).Value = _
'            Application.Index(b, 0, i)
'            j = j + 1
'        Next
    End With
    Application.ScreenUpdating = True
End Sub
klin89
 

Pièces jointes

Re : Ventilation de valeur dans un tableau sans doublon

Re riccardovegas,

En fait, je me suis planté, c'est mieux comme ceci :
Tu fixes la valeur de la constante Decoupe pour obtenir le nombre de conteneurs souhaité par wagon.
VB:
Option Explicit

Sub Répartition1()
Dim a, b(), i As Long, n As Long, j As Long
Const Decoupe As Long = 4
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        a = .Range("a1", Range("a" & Rows.Count).End(xlUp)).Value
        ReDim b(1 To UBound(a, 1) \ Decoupe + 1, 1 To Decoupe)
        For i = 1 To UBound(a, 1) Step Decoupe
            n = n + 1
            For j = 1 To Decoupe
                If i + j - 1 > UBound(a, 1) Then Exit For
                b(n, j) = a(i + j - 1, 1)
            Next
        Next
        j = 2
        For i = 1 To UBound(b, 1)
            .Cells(1, i + j).Resize(UBound(b, 2)).Value = _
           Application.Transpose(Application.Index(b, i, 0))
            j = j + 1
        Next
    End With
    Application.ScreenUpdating = True
End Sub
klin89
 

Pièces jointes

Dernière édition:
Re : Ventilation de valeur dans un tableau sans doublon

Bonjour,
Ce n'est pas vraiment ce que je recherche en fait.
Étape 1
VOIR FICHIER IMPORT COMPLET

comment puis-je numéroter la colonne F avec macro
par exemple en insérant après la colonne M une numérotation automatique
qui compte les conteneur

Etape 2
VOIR IMPORT ESSAI20072015

J'ai mis de colonne S à W (caché) des recherches de valeurs que je cumule en X et Y

de E à H j'inscris le numéro simplifié du conteneur, s'il est déjà utilisé il est coloré.
-1 comment faire pour ne pas pouvoir noté un autre num simplifié s'il est déjà utilisé?
-2 sachant que le fichier au départ n'a pas les colonne E à H et colonne L (cf fichier IMPORT complet).


ETAPE3

Le but est de ventiller les conteneur de la colonne J dans des wagon (B) sachant qu'on ne peut pas mettre plus de 4 conteneur par wagon pour des raisons techniques.

J'ai ajouté le fichier import complet modifié pour voir ce que l'on devrai trouver
je cherche a faire la même chose par macro et non par formule



merci
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
5
Affichages
378
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…