Problème avec Split VBA ACCESS

Résolu/Fermé
mmmxtina - 4 juin 2009 à 11:02
 mmmxtina - 4 juin 2009 à 15:56
Bonjour tout le monde,

Ce post vient à la suite du premier, en fait la chaîne que je récupère à partir du fichier est trsè dense. Et j'ai besoin de couper cette chaîne avec Split pour récupérer certains éléments précis.
Le problème c'est que quand je fais Split, eh bah ça fait rien du tout, je n'ai mm pas de message d'erreur du style, dépassement de capacité....

Une idée?
voici le code! merci!

Sub test()
Dim fp As Integer
Dim fichier, fic, monTab(), machaine(), chemin As String
fic = ""
chemin = "C:\...\relation.txt"
On Error Resume Next
fp = FreeFile

Open chemin For Input As #fp
While Not EOF(fp)
Line Input #fp, fichier
fic = fic & fichier
Wend
Close #fp

monTab = Split(fic, "<") 'Split(fic, "detailler(")
MsgBox monTab(1)
machaine = Split(Mid(monTab(1), 1), "'")
MsgBox machaine(0)
End Sub

quand je fais MsgBox de monTab(1), il n'ya rien qui s'affcihe la message box n'apparaît même pas!

Merci d'avance à tous!
A voir également:

5 réponses

blux Messages postés 25991 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 avril 2024 3 289
4 juin 2009 à 14:00
et quand tu fais un msgbox fic avant le split, tu as quoi ?

Et juste comme ça, dans cette ligne : Dim fichier, fic, monTab(), machaine(), chemin As String
seul chemin est de type string, les autres variables sont de type 'variant' car leur type n'est pas défini.
1
blux Messages postés 25991 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 avril 2024 3 289
4 juin 2009 à 11:36
Salut,

un tableau commence à l'indice 0, pas à 1...
0
Je sais! merci blux pour l'info!!!

moi j'ai besoin de récupérer l'élément après "detailler(", donc oui, je cherche à récupérer le deuxième élément du tableau, soit indince 1!
Parcontre si tu as une idée de pourquoi ça ne fonctionne pas je suis preneuse...

Merci.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 juin 2009 à 11:56
tu peux te servir de la fonction InStr().

Voilà ce que dit l'aide VBA:

InStr, fonction, exemple
Cet exemple utilise la fonction InStr pour renvoyer la position de la première occurrence d'une chaîne dans une autre chaîne.

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' Chaîne dans laquelle s'effectue la 
' recherche.
SearchChar = "P"    ' Recherche la chaîne "P".

' Une comparaison sans respect des majuscules et des minuscules commence ' à la position 4 et renvoie 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    

' Une comparaison avec respect des majuscules et des minuscules commence ' à la position 1 et renvoie 9.
MyPos = Instr(1, SearchString, SearchChar, 0)

' Par défaut (lorsque le dernier argument est omis),la recherche respecte ' les majuscules et les minuscules.
MyPos = Instr(SearchString, SearchChar)    ' Renvoie 9.

MyPos = Instr(1, SearchString, "W")    ' Renvoie 0.


;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
re!!
Merci blux!!! sans faire expres tu as résolu le problème!!!!!!!
en fait split ne comprenani aps car les variable étaient de type variant apparement donc forcément ça plantai, maintenant j'ai réécri mon code en énumérant chaque variable Dim fichier as string,dim fic as string etc...
et ça fonctionne niquel!!

merci polux31 d'avoir répondu!!
bonne journée!
0