Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RESOLU] - Re-Construction table de données en fonction de valeurs multiples

Akortys

XLDnaute Occasionnel
Bonjour à tout le monde,

Bon le titre n'est pas très compréhensible même pour moi.

Code en vba :

J'ai une table de données (feuille Donnees) dans laquelle j'ai des données avec des valeurs multiples (colonne "Commentaires").
Je souhaite grâce à une macro reconstruire cette table de donner en différenciant chaque valeur de la colonne commentaire pour obtenir le résultat de la feuille ("Restitution").
Copie la ligne contenant une valeur multiple séparée par un ";".

Je mets en PJ un fichier qui sera tellement plus parlant que mon charabia.

En vous remerciant d'avance.
 

Pièces jointes

  • Excel-separation.xlsm
    9 KB · Affichages: 38
Dernière édition:

Akortys

XLDnaute Occasionnel
Re : Re-Construction table de données en fonction de valeurs multiples

Bonjour,

Pour info j'ai fait le code suivant et cela à l'air de fonctionner donc si cela peut aider qlq'un :


Au plaisir
 

Efgé

XLDnaute Barbatruc
Re : [RESOLU] - Re-Construction table de données en fonction de valeurs multiples

Bonjour Akortys

Une proposition
(A noter que la première boucle n'est là que pour évitzer un transpose en fin de code)
VB:
Private Sub CommandButton1_Click()
Dim i&, J&, K&, L&, x&
Dim TData As Variant, TReport As Variant

With Sheets("Donnees")
    TData = .Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(3).Row, 4))
End With

For i = LBound(TData, 1) To UBound(TData, 1)
    TData(i, 4) = Split(TData(i, 4), ";")
    x = x + 1 + UBound(TData(i, 4))
Next i

ReDim TReport(1 To x, 1 To 4)

For i = LBound(TData, 1) To UBound(TData, 1)
    For L = LBound(TData(i, 4)) To UBound(TData(i, 4))
        J = J + 1
        For K = LBound(TData, 2) To UBound(TData, 2) - 1
            TReport(J, K) = TData(i, K)
        Next K
        TReport(J, 4) = TData(i, 4)(L)
    Next L
Next i

With Sheets("Restitution")
    .Cells(2, 1).Resize(UBound(TReport, 1), UBound(TReport, 2)) = TReport
    .Columns.AutoFit
    .Activate
End With

    
End Sub

Cordialement
 

Pièces jointes

  • Excel-separation(1).xls
    41.5 KB · Affichages: 35

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…