VBA séparer cellule en +sieurs ligne selon montant

Bonjour à tous,

Je m' explique.

A partir d'un PDF, je converti les données en classeur Excel. Mais voilà, la conversion se fait comme elle peut ^^

Ainsi les données importantes se trouvent être fusionnées dans une même cellule en colonne H... sinon c'est pas drôle..

Par conséquent, j'aimerai pouvoir séparer comme suit :

1 montant en colonne H = une ligne (avec les même donnée des autres colonnes restantes) puis, on passe à l'autre montant, etc

Vous trouverez le fichier joint en question.

J'ai fait un premier test (Test_1), mais cela n'a récupéré que le premier montant de la cellule (je garde pour autre chose ).

Le deuxième test (Spt_Click_test_2) est un code trouvé sur le forum ! qui se rapproche le plus à ce que je souhaiterai, peut-être que c'est celui là à ré écrire ?

d'avance à tous merci,

82019-12.xlsm (26.56 Ko)

bonjour,

une proposition via une macro

Sub aargh()
    Set wsm = Sheets("modifié")
    wsm.Cells.Clear
    k = 2
    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        .Cells.UnMerge
        wsm.Range("A1:J1").Value = .Range("A4:J4").Value 'copie entete de la ligne 4
        For i = 5 To dl 'parcourt les lignes à partir de la ligne 5
            For col = 1 To 10
                Select Case col
                    Case 1, 8, 10 'colonne A,H,J
                        d = Split(.Cells(i, col) & Chr(10), Chr(10))
                        wsm.Cells(k, col).Resize(UBound(d), 1) = Application.Transpose(d)
                    Case Else 'autre colonne
                        d = Split(.Cells(i, col) & " ", " ")
                        If col = 5 Or (col = 4 And d(0) <> d(1)) Then 'col 4 ou 5
                            wsm.Cells(k, col) = .Cells(i, col)
                        Else
                            wsm.Cells(k, col).Resize(UBound(d), 1) = d(0)
                        End If
                End Select
            Next col
            k = k + UBound(d)
        Next i
    End With
End Sub
72019-12.xlsm (22.32 Ko)

Bonjour à tous

Une solution PowerQuery (intégré à Excel)

On devrait pouvoir affiner pour découper les libellés...

32019-12-pq.xlsm (33.87 Ko)

Bonjour h2so4,

Merci pour ta réponse, (quasi parfaite).

j'ai rajouté 2 ligne en fin de l'onglet Feuil1 (ligne 16 et 17). Cependant, j'ai l'impression que le code s'arrete en ligne 15 malgré mon rajout :/

moi blonde, moi chercher mais pas comprendre dsl..

Peux-tu voir si c'est moi qui déconne stp?

Merci,

78chris je vais voir cela

merci à tout les deux !

52019-12-v2.xlsm (27.75 Ko)

Bonjour,

La dernière ligne est déterminée par la ligne de la dernière cellule contenant une valeur en colonne A

h2so4 ,

ok pour la règle, du coup pourquoi ma ligne 16 (où il y a 2 fois "10/12/2019" en colonne A) ne s’éclatent pas elle aussi en 2 lignes distinctes ?

où j'ai mal compris 'encore)

Bonjour

J'avais mal défini la plage source et du coup il manquait des colonnes

J'ai changé le fichier joint à mon précédent post

bonsoir,

correction de la macro et du fichier

52019-12-v2.xlsm (25.08 Ko)

Merci beaucoup ^^

!!

Rechercher des sujets similaires à "vba separer sieurs ligne montant"