Transposer colonne en ligne mais avec plusieurs valeurs

bonjour

G0030019 01XXX734

G0050009 75,76

G0050009 64,07

G0030019 01YYY760

G0050009 0,00

G0030019 01ZZZ930

G0050009 0,00

Voici le tableau que je dois travailler. Je dois relier chaque numéro de la ligne G0030019 avec la ou les valeurs de la ou des lignes G0050009 qui sont en dessous.

j'aurai voulu afficher les montants dans des colonnes à droite du numéro pour faire 1 seule ligne avec 1 ou 2 montants ou faire un cumul des 2 ou 3 montants qui dépendent du même numéro

Merci pour votre aide

Bonne journée

Bonjour lauca,

Pour une aide optimale, joins un fichier exemple à ta demande.

15ddeforum.xlsx (11.67 Ko)

Voici le fichier Excel joint

merci pour votre aide

Dans ton fichier, je ne vois pas apparaître " G0030019", j'ai un peu de mal à comprendre ta demande.

Peux tu mettre à coté le résultat attendu ?

15ddeforum.xlsx (11.95 Ko)

Voici le résultat attend dans le tableau

les zones en grisé ne sont pas indispensable seules les 1eres lignes permettront le lien

merci

Voici un nouveau fichier avec un bouton:

23ddeforum.xlsm (20.60 Ko)

Le code actuel fonctionne seulement :

  • si la disposition est la même que sur l'exemple que tu as indiqué
  • si pas plus de 2 valeurs numérique ont le même code

je viens de télécharger le fichier mais je ne vois aucun résultat !

Il faut exécuter une macro ?

merci pour vos explications

Edit du post précédent

Voici un nouveau fichier avec un code plus souple et qui fonctionnera sans aucune restriction de valeurs consécutives

25ddeforum.xlsm (20.29 Ko)

bonjour

salut Florian53 au passage

la demande est étrange !

pourquoi a-t-on besoin d'une transformation aussi bizarre ?

à te relire

amitiés

Salut Jmd,

Effectivement la demande est bizarre, mais en tout cas elle a était pour moi l'occasion de me creuser les méninges pour faire ce code :

Option Base 1
Sub traitement2_tab()
    Dim tableau
    Dim tab_result
    Dim i As Integer

    derlgn = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Range("D2:F" & derlgn).ClearContents
    tableau = ActiveSheet.Range("B2:B" & derlgn)

    ReDim tab_result(UBound(tableau, 1), 2)

    For i = 1 To UBound(tableau, 1) - 1
        If Not IsNumeric(tableau(i, 1)) Then
            tab_result(i, 1) = tableau(i, 1)
            somme = 0
            j = i + 1
                Do While IsNumeric(tableau(j, 1))
                    tab_result(j, 1) = tableau(j, 1)
                    tab_result(j, 2) = tableau(i, 1)
                    somme = somme + tableau(j, 1)
                    If j = UBound(tableau, 1) Then Exit Do
                    j = j + 1
                Loop
                tab_result(i, 2) = somme
        End If
    Next i

ActiveSheet.Range("D2").Resize(UBound(tab_result, 1), UBound(tab_result, 2)) = tab_result
End Sub

J'imagine qu'une autre solution plus courte et certainement plus simple existe

Rechercher des sujets similaires à "transposer colonne ligne valeurs"