Aire pour convertir donnée Excel

Bonjour à tous

Je suis déjà venu cherché de l'aide sur ce forum et c'est vraiment génial

je reviens vers vous car j'ai encore besoin d'aide

j'aimerais savoir si il existe un moyen plus rapide de convertir ma nomenclature condensée feuille 1 en nomenclature détaillée feuille 3 sans avoir a faire plein de manipulation

je m'explique un peu dans une colonne j'ai une quantité juste à coté une référence et à coté 1 ou plusieurs repère par référence

Le but est de me retrouver avec chaque repère avec la référence associer les uns en dessous des autres

car actuellement je suis obliger d’insérer des lignes puis de copier transposer mes repères et copier coller ma référence

Pouvez-vous m'aider

Cordialement

Céd

Slt,

tu veux faire ca par formule ou vba?

Slt Séd,

un essai en vba. À testet.

Sub Condense_detail()
    Dim rng As Range, Lstrw As Long, rngborder As Range, r As Range
    Dim SpltRng As Range
    Dim RefRng As Range
    Dim i As Integer
    Dim Cumul As Variant
    Dim txt As String, txtRef As String

    Lstrw = Cells(Rows.Count, "D").End(xlUp).Row
    Set rng = Range("D2:D" & Lstrw)

    For Each r In rng.Cells
        Set RefRng = r.Offset(, -1)
        Set SpltRng = r.Offset(, 1)
        txtRef = RefRng.Value
        txt = SpltRng.Value
        Cumul = Split(txt, " ")
        Cells(Rows.Count, "I").End(xlUp).Offset(1, -1) = r

        For i = 0 To UBound(Cumul)
            Cells(Rows.Count, "H").End(xlUp).Offset(i, 1) = txtRef
            Cells(Rows.Count, "H").End(xlUp).Offset(i, 2) = Cumul(i)
        Next i

    Next r

    Lstrw = Cells(Rows.Count, "J").End(xlUp).Row
    Set rngborder = Range("H1:J" & Lstrw)

    With rngborder.Borders
        .LineStyle = xlContinuous
        .Color = vbBlack
        .Weight = xlThin
    End With

End Sub

voici ton fichier:

Bonjour

Wahou quelle rapidité

je ne sais pas trop ce qui est le mieux si c'est formule ou VBA

ton fichier me conviens parfaitement

juste une petite question

si la quantité noté est différente du nombre de repère dù à une erreur

y a t'il moyen d'avoir une case vide? et si oui en couleur pour attiré l'oeil

Cordialement

Ced

Re,

non pas de formules

si la quantité noté est différente du nombre de repère dù à une erreur

y a t'il moyen d'avoir une case vide? et si oui en couleur pour attiré l'oeil

differente? ca veut dire? plus petite plus grande?

c'est mieux si tu mets un exemple, comme pour ton premier fichier, c'était tout simplement trés clair

Bonjour,

Une proposition Power Query, TCD et MFC (à adapter).

Power Query est un complément gratuit à installer pour les versions Excel 2010 et 2013.

Il est inclus pour les autres versions.

Cdlt.

Bonjour

Je suis reparti du fichier VBA ou j'ai mis en rouge la quantité qui est supérieure au nombre de repère et en jaune l'inverse

y a t'il moyen que si la quantité est différente du nombre de repère ou du nombre réf prog les cellules ce mette d'une couleur

car ensuite je repart de ce fichier la pour créeer mon programme machine et donc si il y a une erreur entre la quantité et le nombre de repère il me faut voir avec le client si c'est normal

Je sais pas si je suis bien clair

Cordialement

Céd

Slt Céd,

Slt Jean-Eric,

essaie comme ca:

Sub Condense_detail()
    Dim rng As Range, Lstrw As Long, rngborder As Range, r As Range
    Dim SpltRng As Range
    Dim RefRng As Range
    Dim i As Integer, c As Integer
    Dim Cumul As Variant
    Dim txt As String, txtRef As String

    Lstrw = Cells(Rows.Count, "D").End(xlUp).Row
    Set rng = Range("D2:D" & Lstrw)

    For Each r In rng.Cells
        Set RefRng = r.Offset(, -1)
        Set SpltRng = r.Offset(, 1)
        txtRef = RefRng.Value
        txt = SpltRng.Value
        Cumul = Split(txt, " ")

        If UBound(Cumul) < r - 1 Then
            c = 3
            ElseIf UBound(Cumul) > r - 1 Then
            c = 6
            Else: c = -4142
        End If

        Cells(Rows.Count, "I").End(xlUp).Offset(1, -1) = r

        For i = 0 To UBound(Cumul)
            Cells(Rows.Count, "I").End(xlUp).Offset(1, -1).Interior.ColorIndex = c
            Cells(Rows.Count, "H").End(xlUp).Offset(i, 1).Interior.ColorIndex = c
            Cells(Rows.Count, "H").End(xlUp).Offset(i, 1) = txtRef
            Cells(Rows.Count, "H").End(xlUp).Offset(i, 2).Interior.ColorIndex = c
            Cells(Rows.Count, "H").End(xlUp).Offset(i, 2) = Cumul(i)
        Next i

    Next r

    Lstrw = Cells(Rows.Count, "J").End(xlUp).Row
    Set rngborder = Range("H1:J" & Lstrw)

    With rngborder.Borders
        .LineStyle = xlContinuous
        .Color = vbBlack
        .Weight = xlThin
    End With

End Sub

Slt

Peux-tu me faire le fichier directement car je ne sais comment faire

Cordialement

Ced

Avec plaisir

Mais en utilisatnt Alt + F11 tu peux voir ton code

Merci super

Par contre ça fonctionne bien j'ai remis les bonnes quantitées mais ça me marque toujours le message d'alerte

j'ai vu en D212 écrit Le père plus des cases jaunes et rouges a coté es-ce normal?

Cordialement

Ced

non c'est pas normal, supprime ces cellules. Sorry j'ai tester un truc entre temps

un nouveau fichier

Merci beaucoup

ça correspond exactement à ce que je recherchai

Cordialement

Ced

Rechercher des sujets similaires à "aire convertir donnee"