Eclater contenu d'une cellule séparée par des virgules en ligne
Fitia
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà, avec de l'aide sur le forum, j'ai pu arriver à avoir ce code pour éclater le contenu de ma cellule H sur plusieurs lignes avec les données des colonnes dupliquées à chaque ligne. Toutefois, j'ai un dernier petit souci, quand ma colonne H est vide, la ligne contenant celle-ci n'est pas reprise dans ma feuille de destination. Quelqu'un pourrait-il m'aider à améliorer ce code???
Merci bien
Voilà, avec de l'aide sur le forum, j'ai pu arriver à avoir ce code pour éclater le contenu de ma cellule H sur plusieurs lignes avec les données des colonnes dupliquées à chaque ligne. Toutefois, j'ai un dernier petit souci, quand ma colonne H est vide, la ligne contenant celle-ci n'est pas reprise dans ma feuille de destination. Quelqu'un pourrait-il m'aider à améliorer ce code???
Merci bien
Sub EclaterHsenligne()
Dim C As Range, Tabl, Plage As Range, Ligne As Long
With Sheets("Worklogs")
Set Plage = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp))
End With
With Sheets("My data")
For Each C In Plage
Tabl = Split(C.Offset(, 11), ";")
.[A:C].NumberFormat = "@"
For i = 0 To UBound(Tabl)
Ligne = Ligne + 1
.Range(.Cells(Ligne, 1), .Cells(Ligne, 11)).Value = C.Resize(, 11).Value
.Cells(Ligne, 12) = Tabl(i)
.Range(.Cells(Ligne, 13), .Cells(Ligne, 44)).Value = C.Offset(0, 12).Resize(, 32).Value
Next i
Next C
.[H:H].EntireColumn.AutoFit
End With
'
End Sub
A voir également:
- Eclater contenu d'une cellule séparée par des virgules en ligne
- Partager des photos en ligne - Guide
- Aller à la ligne dans une cellule excel - Guide
- Mètre en ligne - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Excel cellule couleur si condition texte - Guide
1 réponse
Bonjour,
Sub EclaterHsenligne() Dim C As Range, Tabl, Plage As Range, Ligne As Long With Sheets("Worklogs") Set Plage = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp)) End With With Sheets("My data") For Each C In Plage If C.Offset(, 11) <> Empty Then 'cellule pas vide Tabl = Split(C.Offset(, 11), ";") .[A:C].NumberFormat = "@" For i = 0 To UBound(Tabl) Ligne = Ligne + 1 .Range(.Cells(Ligne, 1), .Cells(Ligne, 11)).Value = C.Resize(, 11).Value .Cells(Ligne, 12) = Tabl(i) .Range(.Cells(Ligne, 13), .Cells(Ligne, 44)).Value = C.Offset(0, 12).Resize(, 32).Value Next i Else Ligne = Ligne + 1 End If Next C .[H:H].EntireColumn.AutoFit End With ' End Sub
Merci de ta réponse mais j'ai fais un test avec ton code mais ça n'a rien changé du tout, les lignes dont la colonnes à éclater sont vide ne sont pas reprises dans la feuille de destination 'My Data'
Je viens de comprendre ce qui ne va pas,je regarde la chose
ceci devrait aller: