Problème organisation de données.

0
Bonjour,
Je suis assez "novice" dans l'utilisation un peu poussé d'Excel, je travail sur le création d'un base de données Filemaker et je dois rentrer d'anciennes données stockées sous excel.
Mon problème: les données sont mal organisées sous excel:
Mes données sont organisées de cette façon:
ligneA ______donnéesX1(colonneA)_____ "donnée Y1, donnée Y2, donnée y3"(colonneB)
Je voudrai trouver un outil permettant de rapidement découper les données de cette façon:
colonneA____________colonneB
donnéeX1_________ DonnéesY1
donnéesX1_______ données Y2
donnéesX1_______données Y 3
Avec l'outil convertir, j'arrive a les séparer mais sur un même ligne et plusieurs collonne alors que j'aurais voulu plusieurs lignes sur la même colonne.
Enfin voila...
A votre bon coeur.
Merci d'avance!


Posté le 29 septembre 2014, 19:06
par vinz
Répondre
1

Tu peux utiliser une macro avec la fonction Split qui sert à découper une chaîne de caractères avec un séparateur.
Tu déclenche la macro à l'aide d'un bouton et le tour est joué.

Télécharger le fichier d'exemple : http://cjoint.com/14sp/DIDx10eIy8f.htm

Code source de la macro :

Option Explicit

Private Sub CommandButton1_Click()
    Dim datas, result, dataY
    Dim derlig As Long, lig1 As Long, lig2 As Long, i As Long
    ReDim result(1 To 2, 1 To 1)
    derlig = Cells(Rows.Count, "A").End(xlUp).Row
    datas = [A1].Resize(derlig, 2)
    For lig1 = 2 To derlig
        dataY = Split(datas(lig1, 2), ", ")
        For i = 0 To UBound(dataY)
            lig2 = lig2 + 1
            ReDim Preserve result(1 To 2, 1 To lig2)
            result(1, lig2) = datas(lig1, 1)
            result(2, lig2) = dataY(i)
        Next i
    Next lig1
    With Worksheets("Feuil2")
        .[A:B].ClearContents
        .[A1:B1] = [A1:B1].Value
        .[A2].Resize(UBound(result, 2), UBound(result, 1)) = Application.Transpose(result)
        .Activate
    End With
End Sub
Vince Posté le 7 octobre 2014, 17:25
par Vince

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :