Bonjour,
Je suis un grand débutant en VBA. Je cherche à fractionner certaines cellules d’un tableau par VBA en créant des lignes à partir de données séparées par des virgules, seulement pour certaines cellules.
Ex: ("/" comme séparateur de colonnes) :
Données de base :
A / texte1, texte2, texte3 / autre texte, autre texte 2 / texte4, texte5 /
Résultat recherché :
A / texte1 / autre texte, autre texte 2 / texte4
A / texte2 / / texte 5
A / texte 3 / /
Exemple plus parlant avec fichier Excel : https://www.cjoint.com/c/JEmlkgPl5rp
J’ai trouvé une formule mais elle ne convient pas au fractionnement de plusieurs cellules à la fois sur la même ligne et ne tient pas en compte les différentes cellules à fractionner ou non.
Si elle peut toutefois servir de base :
Option Explicit
Public Sub SeparationEnLignes()
Dim feuilleSource As Worksheet
Dim feuilleCible As Worksheet
Dim iSource, iCible, i As Integer
Dim currentA, currentB As String
Dim currentSplit() As String
Set feuilleSource = Worksheets("Feuil1") 'A modifier, la feuille contenant les données originales
Set feuilleCible = Worksheets("Feuil2") 'A modifier, la feuille où l'on veut le résultat
'Initialisation des compteurs de lignes
iSource = 1
iCible = 1
Do While feuilleSource.Cells(iSource, "A").Value <> "" 'Tant qu'il y a qq chose en colonne A
currentA = feuilleSource.Cells(iSource, "A").Value
currentB = feuilleSource.Cells(iSource, "B").Value
'On décompose la chaine par les virgules
currentSplit = Split(currentB, ",")
'Pour chaque élément, on l'écrit dans la feuille cible
For i = 0 To UBound(currentSplit)
feuilleCible.Cells(iCible, "A").Value = currentA
feuilleCible.Cells(iCible, "B").Value = LTrim(currentSplit(i)) 'En enlevant les espaces à gauche
iCible = iCible + 1
Next i
iSource = iSource + 1
Loop
End Sub
J’espère que quelqu’un saura m’aider !
Un grand merci d’avance même pour essayer !
Bien à vous
Quentin H