Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item en
extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine ( le
dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
XL2000, XP Pro
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
GVentre
Re,
en VBA, tu peux utiliser,:
Position = InStrRev(Range("A1"), "-") Pour TOUT-EN-UN-SEUL-MORCEAU, tu trouveras Position = 16
Cordialement,
GVentre
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro
Re,
en VBA, tu peux utiliser,:
Position = InStrRev(Range("A1"), "-")
Pour TOUT-EN-UN-SEUL-MORCEAU, tu trouveras Position = 16
Cordialement,
GVentre
Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item
en extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine (
le dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
Position = InStrRev(Range("A1"), "-") Pour TOUT-EN-UN-SEUL-MORCEAU, tu trouveras Position = 16
Cordialement,
GVentre
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro
Daniel
Bonjour. essaie : Coupe = Split(Var, "-") For Each Item In Coupe MsgBox Coupe(i) i = i + 1 Next Daniel "Pounet95" a écrit dans le message de news: %23frCBfX$
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
Bonjour.
essaie :
Coupe = Split(Var, "-")
For Each Item In Coupe
MsgBox Coupe(i)
i = i + 1
Next
Daniel
"Pounet95" <pasdepub@oneado.fr> a écrit dans le message de news:
%23frCBfX$EHA.600@TK2MSFTNGP09.phx.gbl...
Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item en
extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine ( le
dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
XL2000, XP Pro
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Bonjour. essaie : Coupe = Split(Var, "-") For Each Item In Coupe MsgBox Coupe(i) i = i + 1 Next Daniel "Pounet95" a écrit dans le message de news: %23frCBfX$
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
Pounet95
Re, Merci ça roule ! A la prochaine fois.
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"Pounet95" a écrit dans le message de news: %23frCBfX$
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
Re,
Merci ça roule !
A la prochaine fois.
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Pounet95" <pasdepub@oneado.fr> a écrit dans le message de news:
%23frCBfX$EHA.600@TK2MSFTNGP09.phx.gbl...
Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item en
extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine ( le
dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
XL2000, XP Pro
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"Pounet95" a écrit dans le message de news: %23frCBfX$
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
anomymousA
bonsoir,
une autre méthode que celles déjà indiquées. en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment changeable.
On Error Resume Next For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1 If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) Else texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) End If Next
MsgBox texte
A+
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
bonsoir,
une autre méthode que celles déjà indiquées.
en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment
changeable.
On Error Resume Next
For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1
If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then
texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i))
Else
texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4,
3).Value), "-")(i))
End If
Next
MsgBox texte
A+
Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item en
extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine ( le
dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
XL2000, XP Pro
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
une autre méthode que celles déjà indiquées. en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment changeable.
On Error Resume Next For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1 If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) Else texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) End If Next
MsgBox texte
A+
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
Pounet95
Bonsoir, Merci à toi aussi. Au passage je note le UBound qui ( je n'ai pas cherché) doit avoir son pendant avec LBound je suppose Bonne soirée
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"anomymousA" a écrit dans le message de news:
bonsoir,
une autre méthode que celles déjà indiquées. en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment changeable.
On Error Resume Next For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1 If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) Else texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) End If Next
MsgBox texte
A+
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
Bonsoir,
Merci à toi aussi.
Au passage je note le UBound qui ( je n'ai pas cherché) doit avoir son
pendant avec LBound je suppose
Bonne soirée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"anomymousA" <anomymousA@discussions.microsoft.com> a écrit dans le message
de news: 1E839187-44C9-47BB-8038-54AA9838CF8B@microsoft.com...
bonsoir,
une autre méthode que celles déjà indiquées.
en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment
changeable.
On Error Resume Next
For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1
If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then
texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i))
Else
texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4,
3).Value), "-")(i))
End If
Next
MsgBox texte
A+
Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item en
extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine ( le
dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
XL2000, XP Pro
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Bonsoir, Merci à toi aussi. Au passage je note le UBound qui ( je n'ai pas cherché) doit avoir son pendant avec LBound je suppose Bonne soirée
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"anomymousA" a écrit dans le message de news:
bonsoir,
une autre méthode que celles déjà indiquées. en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment changeable.
On Error Resume Next For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1 If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) Else texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) End If Next
MsgBox texte
A+
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
AV
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
=SUBSTITUE(SUBSTITUE(A1;"-";"^^";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"-";"")));"^^";" et ")
AV
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
=SUBSTITUE(SUBSTITUE(A1;"-";"^^";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"-";"")));"^^";"
et ")
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
=SUBSTITUE(SUBSTITUE(A1;"-";"^^";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"-";"")));"^^";" et ")
AV
anomymousA
re,
en effet, son petit frère est Lbound (comme low bound ou lowest , va savoir : limite basse in french in the text à opposer à Ubound comme Up bound). Dans l'exemple transmis, il n'est pas besoin d'utiliser LBound du split car Lbound contient evidemment le dernier morceau de texte que tu cherches à recuperer et pour l'obtenir, il suffit d'invoquer le split(tableau)(0) .
Split en anglais peut avoir comme siginification partager, dechirer, rompre. En conséquence dans le cas de figure qui nous interesse, Split pour VBA n'est jamais qu'une manière de créer un tableau monodimensionnel de base 0 (c.à.d le 1er indice a comme valeur 0) dont les élements sont créés par le partage de quelque chose selon un critère de discrimination, en l'occurence ici le caractère "-". Pour la comparaison du critère de discrimination, il existe de soptions qui sont bien expliquées dans l'aide de VBA.
A+
Bonsoir, Merci à toi aussi. Au passage je note le UBound qui ( je n'ai pas cherché) doit avoir son pendant avec LBound je suppose Bonne soirée
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"anomymousA" a écrit dans le message de news:
bonsoir,
une autre méthode que celles déjà indiquées. en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment changeable.
On Error Resume Next For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1 If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) Else texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) End If Next
MsgBox texte
A+
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
re,
en effet, son petit frère est Lbound (comme low bound ou lowest , va savoir
: limite basse in french in the text à opposer à Ubound comme Up bound). Dans
l'exemple transmis, il n'est pas besoin d'utiliser LBound du split car Lbound
contient evidemment le dernier morceau de texte que tu cherches à recuperer
et pour l'obtenir, il suffit d'invoquer le split(tableau)(0) .
Split en anglais peut avoir comme siginification partager, dechirer, rompre.
En conséquence dans le cas de figure qui nous interesse, Split pour VBA n'est
jamais qu'une manière de créer un tableau monodimensionnel de base 0 (c.à.d
le 1er indice a comme valeur 0) dont les élements sont créés par le partage
de quelque chose selon un critère de discrimination, en l'occurence ici le
caractère "-".
Pour la comparaison du critère de discrimination, il existe de soptions qui
sont bien expliquées dans l'aide de VBA.
A+
Bonsoir,
Merci à toi aussi.
Au passage je note le UBound qui ( je n'ai pas cherché) doit avoir son
pendant avec LBound je suppose
Bonne soirée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"anomymousA" <anomymousA@discussions.microsoft.com> a écrit dans le message
de news: 1E839187-44C9-47BB-8038-54AA9838CF8B@microsoft.com...
bonsoir,
une autre méthode que celles déjà indiquées.
en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment
changeable.
On Error Resume Next
For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1
If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then
texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i))
Else
texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4,
3).Value), "-")(i))
End If
Next
MsgBox texte
A+
Bonsoir,
Dans une liste de chaines de caractères, je voudrais pour chaque item en
extraire une partie.
Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4.
Comment connaitre le rang du tiret le plus à droite dans la chaine ( le
dernier donc ) afin
d'extraire les parties situées de part et d'autre.
Il y a quelques temps, il me semble avoir vu que Split pourrait faire
l'affaire mais je ne comprends pas
bien la syntaxe et surtout comment je m'en sers ensuite.
Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU
Merci de vos réponses
XL2000, XP Pro
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
en effet, son petit frère est Lbound (comme low bound ou lowest , va savoir : limite basse in french in the text à opposer à Ubound comme Up bound). Dans l'exemple transmis, il n'est pas besoin d'utiliser LBound du split car Lbound contient evidemment le dernier morceau de texte que tu cherches à recuperer et pour l'obtenir, il suffit d'invoquer le split(tableau)(0) .
Split en anglais peut avoir comme siginification partager, dechirer, rompre. En conséquence dans le cas de figure qui nous interesse, Split pour VBA n'est jamais qu'une manière de créer un tableau monodimensionnel de base 0 (c.à.d le 1er indice a comme valeur 0) dont les élements sont créés par le partage de quelque chose selon un critère de discrimination, en l'occurence ici le caractère "-". Pour la comparaison du critère de discrimination, il existe de soptions qui sont bien expliquées dans l'aide de VBA.
A+
Bonsoir, Merci à toi aussi. Au passage je note le UBound qui ( je n'ai pas cherché) doit avoir son pendant avec LBound je suppose Bonne soirée
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"anomymousA" a écrit dans le message de news:
bonsoir,
une autre méthode que celles déjà indiquées. en imaginant que ton texte soit dans cells(4,3) mais c'est evidemment changeable.
On Error Resume Next For i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) To 1 Step -1 If i = UBound(Split(StrReverse(Cells(4, 3).Value), "-")) Then texte = StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) Else texte = texte & "-" & StrReverse(Split(StrReverse(Cells(4, 3).Value), "-")(i)) End If Next
MsgBox texte
A+
Bonsoir, Dans une liste de chaines de caractères, je voudrais pour chaque item en extraire une partie. Ces chaines de caractères contiennent au minima 1 tiret et au maxima 4. Comment connaitre le rang du tiret le plus à droite dans la chaine ( le dernier donc ) afin d'extraire les parties situées de part et d'autre. Il y a quelques temps, il me semble avoir vu que Split pourrait faire l'affaire mais je ne comprends pas bien la syntaxe et surtout comment je m'en sers ensuite. Exemple : TOUT-EN-UN-SEUL-MORCEAU devient TOUT-EN-UN-SEUL et MORCEAU Merci de vos réponses
XL2000, XP Pro -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/