Bonjour Laurent, C@thy, Seb, Sousou, le Forum,
Pour Laurent il s'agit effectivement de la Fonction Split, qui, pour moi est ultra pratique. Ceci, bien que Ti, (cf :Lien supprimé) n'ait pas l'air de l'apprécier.
Son désavantage, premièrement c'est de n'exister qu'à partir d'Excel 2000, donc inutile d'aller plus loin si vous avez Excel 97, et deuxièmement c'est de constituer une Array Variant, mais avec les ressources des PCs d'aujourd'hui je pense pas qu'il y ait un problème majeur.
Un exemple d'utilisation dans ce contexte précis :
Sub SplitDemo()
Dim Container As Variant
Dim i As Byte
Dim Phrase As String
Phrase = ActiveCell
Container = Split(Phrase, Chr(44)) '<<< Chr(44) pour ",")
For i = 0 To UBound(Container)
ActiveCell.Offset(0, i + 1) = Container(i)
Next
End Sub
Par contre pour C@thy, en tant que développeur, je ne suis pas tout à fait d'accord avec toi, bien qu'à chaque changement de Version de Windows ou d'Excel il me faut faut consacrer un certain temps d'apprentissage, une macro bien rédigée, bien optimisée et bien pensée ne dégénère pas en problème et n'en constitue généralement jamais dans le sens "version descendante".
Au niveau de la construction de code, je m'en vais te "gronder" car écrire ceci :
Dim phrase, cesure, k1, mot As Variant
Dim nbc, n, d As Integer
Signifie que Seule "d" est Integer, toutes les autres variables sont Variant (alors que seules 2 le sont)
Non en VBA il faut déclarer comme ceci :
Dim K1, Mot '<<<< (Sous entendu As Variant par défaut)
Dim Phrase As String, Cesure As String
Dim nbc As Byte, n As Byte, d As Byte
Dans les tous les cas, bien entendu chager Byte pour Integer si la chaine de caractères à traiter dépasse 255 caractères...
Bon Après Midi
@+Thierry