Dupliquer des lignes sous conditions multiples

  • Initiateur de la discussion Initiateur de la discussion vintz
  • Date de début Date de début

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 !

V

vintz

Guest
Bonjour a tous,
J'espère vraiment que quelqu'un pourra m'aider car là je m'arrache les cheveux...
J'ai un fichier excel de base avec ces colonnes

Reference-----------Taille 1--------Taille 2----------Taille3-----------Couleur1-------------Couleur2
1------------------------S---------------L----------------XL--------------Noir-------------------Blanc

Et je souhaiterais qu'il devienne comme cela
Reference-----------Taille-------------------Couleur
1-------------------S-----------------Noir
1-------------------S-----------------Blanc
1-------------------L-----------------Noir
1-------------------L-----------------Blanc
1-------------------XL-----------------Noir
1-------------------XL-----------------Blanc

J'ai bien pensé à une macro, mais mes compétences sont un peu juste...
Merci à tous


Edit : je joins le fichier pour que ce soit plus clair
 

Pièces jointes

Dernière modification par un modérateur:
Re : Dupliquer des lignes sous conditions multiples

Bonjour Vintz,

Non ce n'est pas parfait:

Trois articles présentent une anomalie et ne figurent pas dans la liste finale. Il s'agit des articles de réf égale à :102 (pas de couleur), 155 (pas de couleur-et taille égale à une couleur !!) et 216 (pas de couleur).

La liste finale ne reprend que les articles dont au moins une taille existe ET au moins une couleur existe.

Si tu désires inclure les articles dont soit la taille manque, soit la couleur manque, reprendre le code ci-dessous:
Code:
Sub Dispatcher()
    Dim xSource As Range, Vals
    Dim i, j, k, l, m, n
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        Range("W:Y").ClearContents
        Set xSource = .Cells(.Rows.Count, 1).End(xlUp)
        If xSource.Row = 1 Then Exit Sub
        Vals = .Range("A1").Resize(xSource.Row, 21).Value
        .Cells(1, "w") = "Réf": .Cells(1, "x") = "Taille": .Cells(1, "y") = "Couleur"
        m = 1
        For i = 2 To xSource.Row
            If Vals(i, 5) = "" Then Vals(i, 5) = "-"          'pour inclure les articles avec aucune taille
            If Vals(i, 17) = "" Then Vals(i, 17) = "-"      'pour inclure les articles avec aucune couleur
            For j = 5 To 13
                If Vals(i, j) <> "" Then
                    For k = 17 To 21
                        If Vals(i, k) <> "" Then
                            m = m + 1
                            .Cells(m, "w") = Vals(i, 1)
                            .Cells(m, "x") = Vals(i, j)
                            .Cells(m, "y") = Vals(i, k)
                        End If
                    Next k
                End If
            Next j
        Next i
    End With
    Application.ScreenUpdating = True
End Sub

On a rajouté ces deux lignes:
If Vals(i, 5) = "" Then Vals(i, 5) = "-" 'pour inclure les articles avec aucune taille
If Vals(i, 17) = "" Then Vals(i, 17) = "-" 'pour inclure les articles avec aucune couleur

On peut choisir quelles options prendre en incluant ou non la 1ière ou 2ième de ces deux lignes.

exclure de la liste finale les articles sans aucune taille:
effacer la ligne: If Vals(i, 5) = "" Then Vals(i, 5) = "-"

exclure de la liste finale les articles sans aucune couleur:
effacer la ligne: If Vals(i, 17) = "" Then Vals(i, 17) = "-"

exclure tous les article soit sans taille ou soit sans couleur
effacer la ligne: If Vals(i, 5) = "" Then Vals(i, 5) = "-" et
effacer la ligne: If Vals(i, 17) = "" Then Vals(i, 17) = "-"

inclure tous les articles avec ou sans taille, avec ou sans couleur
conserver les deux lignes:
If Vals(i, 5) = "" Then Vals(i, 5) = "-"
If Vals(i, 17) = "" Then Vals(i, 17) = "-"
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour