Bonjour!
Existe-t-il une fonction excel equivalente à la fonction VBA split?
Merci!
Bonjour!
Existe-t-il une fonction excel equivalente à la fonction VBA split?
Merci!
Comment verrais-tu ça ? Une formule qui renvoie un tableau ? Quel problème as-tu à résoudre ?
Split a besoin de trois infos, comment les envoies-tu ?
La seule possibilité que je vois serait l'utilisation d'une fonction, fonction split à laquelle tu enverrais texte ou adresse de cellule, séparateur ou adresse de cellule, et indice ou adresse de cellule.
La formule dans la cellule pourrait être alors
où A1 contient une phrase,=Split03(A1;" ";5)
et la fonction placée dans un module standardcode qui renverra le 6ème mot de la phrase placée en A1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Function Split03(LeString, separateur, indice) Split03 = Split(LeString, separateur)(indice) End Function
Bon après-midi
Bonjour,
Il n'y a à ma connaissance pas de fonction Excel déjà existante pour faire ce que tu veux faire !
La seule solution est donc (salut Ousk) de créer une fonction personnalisée (en VBA, donc)
Merci Ouskel'n'or
Je ne voulais pas trop ennuyer avec des détails alors j'ai fait court.
Tu avais bien compris ce que je voulais: Les trois infos étant rentrées manuellement et la formule copiée et collée au besoin dans la feuille.
On arrive parfois à faire pas mal de choses à l'aide des fonctions d'excel et quand on partage les fichiers avec d'autres (pas toujours les mêmes) ça évite les problèmes de message de sécurité qu'excel envoie et qui effraie un peu les novices, alors quand je le peux et que le fichier est destiné à d'autres, j'essaye tant que possible d'éviter le code, d'où ma question.
J'ai cherché et n'ai pas trouvé alors j'ai posté...
Tu me donnes la réponse en me donnant la fonction (je n'en demandais pas tant!!!). Donc pas de fonction excel, alors faut du code.
Pendant que j'y suis. Je ne poste pas souvent car en général je trouve la réponse à mes questions dans les tutos et/ou les posts des autres et c'est souvent toi (pas toujours!!) qui y répond, alors merci aussi pour toutes tes contributions qui m'ont bien souvent aidé indirectement.
Bon après midi à toi aussi.
Bonjour,
Si je peux me permettre de rajouter mon grain de sel,
la fonction «Split03» ne nécessite pas d'être surchargée du paramètre indice qui en limite la réutisation dans un éventuel autre contexte. (remarque de puriste lol )
appelée par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function SplitInSheet(strInput As String, Optional strSeparateur As String = "|") As String() SplitInSheet = Split(strInput, strSeparateur) End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part =INDEX(SplitInSheet("a|b|c");2)
C'est trop rare pour ne pas mériter d'être félicité.
Bonjour à tous
Histoire de se faire plaisir et apres une consommation importante de dolicrane
Split en Formule (Formule matricielle)
En A1 : La Designation à spliter
En B1 : Le séparateur
En C1 : L'index à récuperer(de 1 à xxxx)
En D1 la Formule
testée sur Excel97
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;B1;""))+1<C1;"";STXT(B1&A1&B1;PETITE.VALEUR(SI(STXT(B1&A1 & B1;LIGNE(INDIRECT("1:"& NBCAR(B1&A1 & B1)));1)=B1;LIGNE(INDIRECT("1:" & NBCAR(B1&A1 & B1)));9^9);C1)+1;PETITE.VALEUR(SI(STXT(B1&A1 & B1;LIGNE(INDIRECT("1:"& NBCAR(B1&A1 & B1)));1)=B1;LIGNE(INDIRECT("1:" & NBCAR(B1&A1 & B1)));9^9);C1+1)-1-PETITE.VALEUR(SI(STXT(B1&A1 & B1;LIGNE(INDIRECT("1:"& NBCAR(B1&A1 & B1)));1)=B1;LIGNE(INDIRECT("1:" & NBCAR(B1&A1 & B1)));9^9);C1)))
Wilfried_42:!!
Je suis impressioné!
Merci à tous ceux qui se sont penché sur le problème, je ne pensais vraiment pas déclencher autant d'intérêt avec ma petite question que j'ai presque hésité à poser...
Ça prouve qu'il ya des gens qui aiment vraiment ce qu'ils font; ça donne du courage.
A bientôt.
Partager