drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 23 nov. 2006 à 10:38
Salut, si tu fais une petite recherche sur le site tu n'auras aucun mal à trouver ce que tu cherches:
Sources pour lire un fichier text.
Et pour récupérer 123456 la fonction Split.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 nov. 2006 à 10:39
Salut,
Je pense que tu devrais chercher un peu sur le site dans la section code tu devrais trouver assez rapidement, c'est bourré d'exemple.
Si tu ne trouve toujours pas , explique un peu mieux ou tu coinces
- Est ce que tu sais récupérer le contenu d'un fichier?
- Est ce que tu sais parcourir une chaine de caracteres?
cs_cruzy
Messages postés17Date d'inscriptiondimanche 19 septembre 2004StatutMembreDernière intervention23 novembre 2006 23 nov. 2006 à 10:44
> jrivet
non, je ne sais pas recuperer le contenu d'un fichier
et oui, je sais parcourir une chaine de caractere, mais uniquement quand ces caractere sont deja dans une cellule excel
si j'arrivais à copier coller mon fichier txt dans une cellule, y'aurais alors pu de probleme ;)
cs_carvals
Messages postés50Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention23 janvier 2008 23 nov. 2006 à 11:15
salut,
Un bon moyen lorsqu'on commence est d'utiliser l'enregistreur de macro pour voir comment c'est code..
Dans ton cas ouvre l'enregistreur puis
Data/ Get External data / Import Text file puis tu te laisses guider ensuite ca voir ce que ca donne en VBA et customise a ta guise...
Arguments
* expression : Expression de chaîne contenant des sous-chaînes et des séparateurs. Si l'argument expression est une chaîne de longueur nulle, la fonction Split renvoie un tableau vide, c'est-à-dire un tableau ne comportant ni éléments, ni données.
* delimiter : Facultatif. Caractère de chaîne utilisé pour identifier les limites de sous-chaîne. S'il est omis, le caractère espace (" ") est utilisé comme séparateur par défaut. Si l'argument delimiter est une chaîne de longueur nulle, un tableau à un élément contenant toute la chaîne expression est renvoyée.
* count : Facultatif. Nombre de sous-chaînes à renvoyer ; -1 indique que toutes les sous-chaînes sont renvoyées.
* compare : <dd>Facultatif. Valeur numérique indiquant le type de comparaison à utiliser lors de l'évaluation des sous-chaînes. Reportez-vous à la section Paramètres.
Paramètres
L'argument compare peut prendre les valeurs suivantes :
Constante |Valeur |Description |----
vbBinaryCompare, 0, Effectue une comparaison binaire., ----
vbTextCompare, 1, Effectue une comparaison texte.
Notes
L'exemple ci-dessous utilise la fonction Split pour renvoyer un tableau à partir d'une chaîne. La fonction effectue une comparaison textuelle du délimiteur et renvoie toutes les sous-chaînes.
Dim MyString, MyArray, Msg
MyString = "VBScriptXestSuper!"
MyArray =
Arguments
* expression : Expression de chaîne contenant des sous-chaînes et des séparateurs. Si l'argument expression est une chaîne de longueur nulle, la fonction Split renvoie un tableau vide, c'est-à-dire un tableau ne comportant ni éléments, ni données.
* delimiter : Facultatif. Caractère de chaîne utilisé pour identifier les limites de sous-chaîne. S'il est omis, le caractère espace (" ") est utilisé comme séparateur par défaut. Si l'argument delimiter est une chaîne de longueur nulle, un tableau à un élément contenant toute la chaîne expression est renvoyée.
* count : Facultatif. Nombre de sous-chaînes à renvoyer ; -1 indique que toutes les sous-chaînes sont renvoyées.
* compare : <dd>Facultatif. Valeur numérique indiquant le type de comparaison à utiliser lors de l'évaluation des sous-chaînes. Reportez-vous à la section Paramètres.
Paramètres
L'argument compare peut prendre les valeurs suivantes :
Constante |Valeur |Description |----
vbBinaryCompare, 0, Effectue une comparaison binaire., ----
vbTextCompare, 1, Effectue une comparaison texte.
Notes
L'exemple ci-dessous utilise la fonction Split pour renvoyer un tableau à partir d'une chaîne. La fonction effectue une comparaison textuelle du délimiteur et renvoie toutes les sous-chaînes.
Dim MyString, MyArray, Msg
MyString = "VBScriptXestSuper!"
MyArray =
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 23 nov. 2006 à 13:51
Salut,
Avec ceci, tu devrais déjà y voir plus clair.
Dim s As String
Dim tablo() As String
Open "monfichier.txt" For Input As #1
While not EOF(1) ' Tant qu'on est pas au bout du fichier
Line Input #1,s ' Lecture de chaque ligne
tablo = Split(s," ") ' découpage de la ligne suivant les espaces
MsgBox "La donnée recherchée sur cette ligne est " & tablo(1)
Wend
Close #1
Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 23 nov. 2006 à 14:09
Sinon petite variante (sans le split) qui stock toutes les lignes dans un tableau : c'est plus long mais comme je cherche depuis tout à l'heure je le met comme même, car en fait j'avais jamais fais ça en VBA (ou VB6). En tout cas, comme quoi les recherches sur le site sont fructueuses!
Dim NbLignes As Integer
Private Sub CommandButton1_Click()
Dim TaString As String
Dim TablString()
compte_ligne ("C:\Analyse.txt")
Open "C:\Analyse.txt" For Input As #1
ReDim Preserve TablString(NbLignes)
For i = 1 To NbLignes
Line Input #1, TaString
TablString(i) = TaString
Next i
Close #1
For i = 1 To NbLignes
MsgBox TablString(i)
Next i
End Sub
Sub compte_ligne(Chemin_complet As String)
On Error GoTo ANNULER
Open Chemin_complet For Input As #1
While Not EOF(1)
Line Input #1, texte
NbLignes = NbLignes + 1
Wend
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 23 nov. 2006 à 15:27
Si tu crée un userfrom avec un bouton de commande et que tu fais un copier coller de mon code en remplaçant ("C:\Analyse.txt") par le chemin de ton fichier texte, tu auras ce que tu veux. De même avec le code de econs!