Fonction split
Résolu/Fermé
A voir également:
- Fonction split
- Fonction si et - Guide
- Split cam - Télécharger - Messagerie
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
3 réponses
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
20 nov. 2008 à 17:04
20 nov. 2008 à 17:04
Bonjour
Split n'est pas dans toute les versions Excel, j'ai 2002 c'est Ok, mais 97 pas bon et 2000 je ne sais pas
tu cherche les 5 derniers caractères
si tu fais split(maligne;"!") tu auras tes 2 dernier caracteres sur les 3 denieres position du tableau que split te renvoie
!
SMD
!
alors qu'ile est plus simple d'utiliser pour le controle : right
if right(maligne,5) = "!SMD!" then
Split n'est pas dans toute les versions Excel, j'ai 2002 c'est Ok, mais 97 pas bon et 2000 je ne sais pas
tu cherche les 5 derniers caractères
si tu fais split(maligne;"!") tu auras tes 2 dernier caracteres sur les 3 denieres position du tableau que split te renvoie
!
SMD
!
alors qu'ile est plus simple d'utiliser pour le controle : right
if right(maligne,5) = "!SMD!" then
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
21 nov. 2008 à 08:39
21 nov. 2008 à 08:39
re:
la commande : est devient assez bizarre, car dans le cas ou !SMD! n'est pas present, tu risques de te retrouver avec une erreur
le seul moyen est de tester la position 0 avec la ligne elle meme, si elles sont egales, SMD absent, sinon SMD present
voici le code, j'ai testé et ca marche
autre fonction avec instr (ce qui permet ou qu'il soit dans la liste il est trouvé)
msgbox cherche1(maligne, "!SMD!")
msgbox cherche2(maligne, "!SMD!")
la commande : est devient assez bizarre, car dans le cas ou !SMD! n'est pas present, tu risques de te retrouver avec une erreur
le seul moyen est de tester la position 0 avec la ligne elle meme, si elles sont egales, SMD absent, sinon SMD present
voici le code, j'ai testé et ca marche
Function cherche1(ligne as string, caractere as string) as boolean if split(ligne,caractere)(0) = ligne then cherche1 = false else cherche1 = true end function
autre fonction avec instr (ce qui permet ou qu'il soit dans la liste il est trouvé)
Function chercher2( ligne as string, caractere as string) as boolean if instr(ligne,caractere) = 0 then cherche2 = false else cherche2 = true end if
msgbox cherche1(maligne, "!SMD!")
msgbox cherche2(maligne, "!SMD!")
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
21 nov. 2008 à 14:52
21 nov. 2008 à 14:52
re:
je ne sais pas trop, tu as essayé sur une ligne qui ne contient pas !SMD! ?????
Personnellement je pense que ca ne devrait pas marcher, si tu n'as pas !SMD! Dans ta ligne, split renvoie une seule valeur : un tablo(0 to 0)
donc : sur une ligne ou !SMD! n'est pas present
SPlit(ligne,"!SMD!")(9) renverra Erreur d'execution "9": L'indice n'apartient pas à la selection
C'est cela que ca provoque sur mon Excel
je ne sais pas trop, tu as essayé sur une ligne qui ne contient pas !SMD! ?????
Personnellement je pense que ca ne devrait pas marcher, si tu n'as pas !SMD! Dans ta ligne, split renvoie une seule valeur : un tablo(0 to 0)
donc : sur une ligne ou !SMD! n'est pas present
SPlit(ligne,"!SMD!")(9) renverra Erreur d'execution "9": L'indice n'apartient pas à la selection
C'est cela que ca provoque sur mon Excel
salut
La je pense que tu n'a pas compris ce que je recherchais à faire avec mon petit programme.
En effet je me sers de la fonction split pour pouvoir faire une sorte de select dans une sous-chaîne
Je veux pour le moment récuperer les lignes contenant !SMD! à la 9ème position de la ligne, ce qui marche
L'erreur que tu as écrite ne s'affiche pas, pour le moment tout fonctionne comme je le veux.
Dans mon fichier, il y a même des cas où il n'y a pas 9 champs dans une ligne et pourtant ca marche.
Maintenant il va falloir que je cherche comment sélectionner des données dans le champ déjà sélectionne ...
a plus
La je pense que tu n'a pas compris ce que je recherchais à faire avec mon petit programme.
En effet je me sers de la fonction split pour pouvoir faire une sorte de select dans une sous-chaîne
Je veux pour le moment récuperer les lignes contenant !SMD! à la 9ème position de la ligne, ce qui marche
L'erreur que tu as écrite ne s'affiche pas, pour le moment tout fonctionne comme je le veux.
Dans mon fichier, il y a même des cas où il n'y a pas 9 champs dans une ligne et pourtant ca marche.
Maintenant il va falloir que je cherche comment sélectionner des données dans le champ déjà sélectionne ...
a plus
21 nov. 2008 à 08:23
Merci de répondre d'une part
d'autre part en utilisant ma fonction split je disais
split(maligne;"!SMD!") est cela ne correpondait pas du tout avec le résultat attendu.
mais là je vais voir la fonction right peut etre que cela marchera. merci je vous tiens au courant
Bonne journée