Bonjour tout le monde
Jannick, tu va voir c’est super simple.
En décortiquant le code :
For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
Signifie : pour chaque (for each) cellule (c) dans la plage (in range(...)) allant de a1 à A jusqu'à la dernière cellule non vide.
tablosplite = Split(c, ' ')
La fonction split permet de découper une chaîne de caractère en sous chaîne, il suffit pour ça de préciser la chaîne ( c) et le délimiter (espace)
Tout ceci est stocké dans un tableau en mémoire nommé ici tablosplit, mais j’aurais pu l’appeler autrement (toto= Split(c, ' '))
Un autre exemple, en a1 tu as 122 ;45 ;154 ;74
Tontableau=split(range('a1'), ';') va te séparer les sous chaine (rien a voir avec le chouchen) qui se trouve entre les ';'.
Ensuite il te faut renvoyer ce tableau :
c(1, 5).Resize(1, UBound(tablosplite) + 1) = tablosplite
c(1,5) = a partir de la cellule C en te décalant de 5 colonnes à droite, mais sur la même ligne (1,5)
redéfinit une zone(resize) ayant comme taille 1 ligne (1,…) et comme nombre de colonne le nombre de sous chaîne du tableau (UBound(tablosplite)) et renvoi le tableau (=tablosplit)
pour ne renvoyer que quelques éléments du tablosplit, il te suffit de faire une boucle :
Dim tablosplite As Variant
Dim c As Range
Dim i As Byte
Dim colonne As Byte
For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
colonne = 5
tablosplite = Split(c, ' ')
For i = 4 To UBound(tablosplite)
c.Offset(0, colonne) = tablosplite(i)
colonne = colonne + 1
Next i
Next c
voilà, en espérant ne pas avoir été trop long et pédagogique
salut