OVH Cloud OVH Cloud

Fonction SPLIT.

9 réponses
Avatar
Bruno
Bonjour à tous,

Dans Office XP existe un fonction hyper intéressante la Fonction : SPLIT.
Cette fonction permet de découper une chaîne en autant de sous-chaîne
délimitée par un séparateur et place chacunes des sous-chaînes dans un
tableau.
Elle est toute simple à mettre en oeuvre : tblo = SPLIT(MaChaîne,
Mondélimiteur) renvoie tblo(0), tblo(1), tblo(2), etc.

Cette fonction existe sous Office 98 mais permet seulement de gérer
l'affichage fenètré de Windows et n'est en rien identique à celle sous XP.

Quelqu'un aurait-il le code de cette fonction sous XP ? ou existerait-il
sous 98 une autre fonction qui fait le même Job ?

Merci d'avance pour votre aide à tous.

A+++
Bruno

9 réponses

Avatar
popi
Salut Bruno,
ou existerait-il sous 98 une autre fonction qui fait le même Job ?
Va chercher ton bonheur sur le site de Frédéric par ex :

http://perso.wanadoo.fr/frederic.sigonneau/ tape split dans son moteur de
recherche et régale-toi ;-)
Frédéric que je salue au passage !

@+ popi

Avatar
Pascal Engelmajer
Salut,
il faut l'écrire.
En voici une due à Frédéric Sigonneau

Function SplitFor97(split_string As String, orig_string As String) As
Collection
' Helper function to return a list from a string
' e.g.
' split(" ", "I like banana splits")
' -> "I", "like", "banana", "splits"

' prepare the new list
If split_string = "" Then Exit Function 'fs
Dim coll As New Collection

Dim pos
pos = 1
Dim token As String
Dim my_string As String
my_string = orig_string 'copied so as not to modify the original string

' As long as there's some string left to scan, look for the
' split value in it, then add everything to the left of it
' (using the Left operator) to our new list.
' Then Redefine the string as the bit to the right of that
' (using the Mid operator)

While my_string <> "" And pos <> 0
pos = InStr(1, my_string, split_string)
If pos > 0 Then
token = Left(my_string, pos - 1)
If token <> "" Then coll.Add token
my_string = Mid(my_string, pos + Len(split_string))
End If
Wend
' By default, only add the string if it's not blank.
' this means that multiple delimiters don't create
' multiple fields.
' e.g.
' split("-", "Hello-----World")
' -> "Hello", "World"
'
' This might not be what you want ("Hello","","","","","World")
' but it's the correct default for this particular application.

If my_string <> "" Then coll.Add my_string
Set SplitFor97 = coll
End Function


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Bruno" a écrit dans le message de news:
400a44e3$0$327$
Bonjour à tous,

Dans Office XP existe un fonction hyper intéressante la Fonction : SPLIT.
Cette fonction permet de découper une chaîne en autant de sous-chaîne
délimitée par un séparateur et place chacunes des sous-chaînes dans un
tableau.
Elle est toute simple à mettre en oeuvre : tblo = SPLIT(MaChaîne,
Mondélimiteur) renvoie tblo(0), tblo(1), tblo(2), etc.

Cette fonction existe sous Office 98 mais permet seulement de gérer
l'affichage fenètré de Windows et n'est en rien identique à celle sous XP.

Quelqu'un aurait-il le code de cette fonction sous XP ? ou existerait-il
sous 98 une autre fonction qui fait le même Job ?

Merci d'avance pour votre aide à tous.

A+++
Bruno




Avatar
Pascal Engelmajer
Salut Popi,
les grands esprits se rencontrent...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"popi" a écrit dans le message de news:
OQNRM$
Salut Bruno,
ou existerait-il sous 98 une autre fonction qui fait le même Job ?
Va chercher ton bonheur sur le site de Frédéric par ex :

http://perso.wanadoo.fr/frederic.sigonneau/ tape split dans son moteur de
recherche et régale-toi ;-)
Frédéric que je salue au passage !

@+ popi






Avatar
popi
Salut Pascal,
les grands esprits se rencontrent...
Flatteur ! ;-)

A la différence près que toi tu lui a apporté le poisson, alors que mes
origines corses m'obligent à l'envoyer à la pêche ;-)

Amicalement,

@+ popi

Avatar
AV
Et si vous lui aviez appris à pécher, ça aurait pas été mieux ?
;-)
AV
Avatar
popi
Salut AV,
je l'attendais celle-là ! donc je vais étoffer un peu ma réponse :
La réponse du corse : "J'ai déjà fait l'effort de taper l'adresse de
Frédéric de mémoire, si en plus il faut que je lui explique comment trouver
les adresses alors ! "

Du normand: " Ouais, faut voir "

Du viet : " Honorable Bruno pas être tout à fait débutant, lui savoir pêcher
déjà depuis longtemps ! "

;-)
Avatar
Philippe.R
Bonjour tous,
Et la réponse du bon ouvrier, tu l'oublies popi ?
C'est "Oui patron !"
--
Amicales Salutations

Retirer A_S_ pour répondre.

"popi" a écrit dans le message de
news:%
Salut AV,
je l'attendais celle-là ! donc je vais étoffer un peu ma réponse :
La réponse du corse : "J'ai déjà fait l'effort de taper l'adresse de
Frédéric de mémoire, si en plus il faut que je lui explique comment trouver
les adresses alors ! "

Du normand: " Ouais, faut voir "

Du viet : " Honorable Bruno pas être tout à fait débutant, lui savoir pêcher
déjà depuis longtemps ! "

;-)




Avatar
Bruno
Merci Popi, je connaissais le site de Frédéric, mais n'avais pas pensé
utiliser son moteur... En l'utilisant, j'ai trouvé mon bonheur....
un grand merci pour ta précieuse indication...
A++++
Bruno

"popi" a écrit dans le message de
news:OQNRM$
Salut Bruno,
ou existerait-il sous 98 une autre fonction qui fait le même Job ?
Va chercher ton bonheur sur le site de Frédéric par ex :

http://perso.wanadoo.fr/frederic.sigonneau/ tape split dans son moteur de
recherche et régale-toi ;-)
Frédéric que je salue au passage !

@+ popi






Avatar
Bruno
Merci Pascal,
Grâce à Popi, je viens à l'instant de la trouver sur le site de Frédéric.
(j'avais oublié le moteur de recherche!!!!)
Quoiqu'il en soit un grand merci pour ton aide à toi aussi.
A++++
Bruno

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il faut l'écrire.
En voici une due à Frédéric Sigonneau

Function SplitFor97(split_string As String, orig_string As String) As
Collection
' Helper function to return a list from a string
' e.g.
' split(" ", "I like banana splits")
' -> "I", "like", "banana", "splits"

' prepare the new list
If split_string = "" Then Exit Function 'fs
Dim coll As New Collection

Dim pos
pos = 1
Dim token As String
Dim my_string As String
my_string = orig_string 'copied so as not to modify the original string

' As long as there's some string left to scan, look for the
' split value in it, then add everything to the left of it
' (using the Left operator) to our new list.
' Then Redefine the string as the bit to the right of that
' (using the Mid operator)

While my_string <> "" And pos <> 0
pos = InStr(1, my_string, split_string)
If pos > 0 Then
token = Left(my_string, pos - 1)
If token <> "" Then coll.Add token
my_string = Mid(my_string, pos + Len(split_string))
End If
Wend
' By default, only add the string if it's not blank.
' this means that multiple delimiters don't create
' multiple fields.
' e.g.
' split("-", "Hello-----World")
' -> "Hello", "World"
'
' This might not be what you want ("Hello","","","","","World")
' but it's the correct default for this particular application.

If my_string <> "" Then coll.Add my_string
Set SplitFor97 = coll
End Function


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Bruno" a écrit dans le message de news:
400a44e3$0$327$
Bonjour à tous,

Dans Office XP existe un fonction hyper intéressante la Fonction :
SPLIT.


Cette fonction permet de découper une chaîne en autant de sous-chaîne
délimitée par un séparateur et place chacunes des sous-chaînes dans un
tableau.
Elle est toute simple à mettre en oeuvre : tblo = SPLIT(MaChaîne,
Mondélimiteur) renvoie tblo(0), tblo(1), tblo(2), etc.

Cette fonction existe sous Office 98 mais permet seulement de gérer
l'affichage fenètré de Windows et n'est en rien identique à celle sous
XP.



Quelqu'un aurait-il le code de cette fonction sous XP ? ou existerait-il
sous 98 une autre fonction qui fait le même Job ?

Merci d'avance pour votre aide à tous.

A+++
Bruno