Bien le Bonjour =E0 tous, joyeux noel, bonnes f=EAtes et toutes ces
sortes de choses
Je cherche une valeur (toto) dans un tableau VBA construit =E0 partir
d'un fichier texte. Voici le code que j'ai fait =E0 partir de l'aide, du
mpfe et de ma phosphoration.
Bien sur, cela ne marche pas. En mode pas =E0 pas, j'ai vu que la
variable "position" prennait la valeur "error 2015". Le probl=E8me vient
il du fait que je construise mon tableau avec Line Input et que la
valeur cherch=E9e est une chaine de carat=E8res INCLUS dans la ligne ?
d'ou mes 2 questions :
1/ comment resoudre ce pb sans transformer mon portable en freesbee le
plus cher du monde
2/ comment connaitre le libell=E9 d'une erreur. J'ai essay=E9 Sub msgbox
error 2015 End sub mais sans r=E9sultat.
Merci bien.
Open FICHIER1 For Input As #1
'r=E9cup=E8re toutes les valeurs du fichier dans un tableau
Do While Not EOF(1)
j =3D j + 1
ReDim Preserve Tblo(1 To j)
Line Input #1, Tblo(j)
Loop
'Sort de la macro si le fichier est vide ou n'existe pas
If j =3D 0 Then
Exit Sub
End If
'recherche la valeur TOTO
For j =3D 1 To UBound(Tblo)
position =3D Application.Match("TOTO", Tblo(j), 0)
Next j
'referme le fichier avant de le r=E9-ouvrir en =E9criture
Close #1
If Err <> 0 Then
Sheets("Sheet1").Range("A4").Value =3D "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value =3D "PAS TROUVE"
End If
Erase Tblo
j =3D 0
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Pierron
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
Bonjour Top100;
Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile
Open txtFile For Binary Access Read As #f
Buffer = String(LOF(f), Chr(0))
Get #f, , Buffer
Close #f
Info = "NON TROUVE"
If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5)
Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" <vincent.topsent@ceram.fr> a écrit dans le message de news:
1167216747.084624.34610@79g2000cws.googlegroups.com...
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces
sortes de choses
Je cherche une valeur (toto) dans un tableau VBA construit à partir
d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du
mpfe et de ma phosphoration.
Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la
variable "position" prennait la valeur "error 2015". Le problème vient
il du fait que je construise mon tableau avec Line Input et que la
valeur cherchée est une chaine de caratères INCLUS dans la ligne ?
d'ou mes 2 questions :
1/ comment resoudre ce pb sans transformer mon portable en freesbee le
plus cher du monde
2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox
error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1
'récupère toutes les valeurs du fichier dans un tableau
Do While Not EOF(1)
j = j + 1
ReDim Preserve Tblo(1 To j)
Line Input #1, Tblo(j)
Loop
'Sort de la macro si le fichier est vide ou n'existe pas
If j = 0 Then
Exit Sub
End If
'recherche la valeur TOTO
For j = 1 To UBound(Tblo)
position = Application.Match("TOTO", Tblo(j), 0)
Next j
'referme le fichier avant de le ré-ouvrir en écriture
Close #1
If Err <> 0 Then
Sheets("Sheet1").Range("A4").Value = "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value = "PAS TROUVE"
End If
Erase Tblo
j = 0
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
Top100
impeccable. Un grand merci à toi. Sais-tu juste si la methode que j'utilisais ne marchait pas a cause de "line input" qui me construit mon tableau par ligne?
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
impeccable. Un grand merci à toi. Sais-tu juste si la methode que
j'utilisais ne marchait pas a cause de "line input" qui me construit
mon tableau par ligne?
Bonjour Top100;
Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile
Open txtFile For Binary Access Read As #f
Buffer = String(LOF(f), Chr(0))
Get #f, , Buffer
Close #f
Info = "NON TROUVE"
If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5)
Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" <vincent.topsent@ceram.fr> a écrit dans le message de news:
1167216747.084624.34610@79g2000cws.googlegroups.com...
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces
sortes de choses
Je cherche une valeur (toto) dans un tableau VBA construit à partir
d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du
mpfe et de ma phosphoration.
Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la
variable "position" prennait la valeur "error 2015". Le problème vient
il du fait que je construise mon tableau avec Line Input et que la
valeur cherchée est une chaine de caratères INCLUS dans la ligne ?
d'ou mes 2 questions :
1/ comment resoudre ce pb sans transformer mon portable en freesbee le
plus cher du monde
2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox
error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1
'récupère toutes les valeurs du fichier dans un tableau
Do While Not EOF(1)
j = j + 1
ReDim Preserve Tblo(1 To j)
Line Input #1, Tblo(j)
Loop
'Sort de la macro si le fichier est vide ou n'existe pas
If j = 0 Then
Exit Sub
End If
'recherche la valeur TOTO
For j = 1 To UBound(Tblo)
position = Application.Match("TOTO", Tblo(j), 0)
Next j
'referme le fichier avant de le ré-ouvrir en écriture
Close #1
If Err <> 0 Then
Sheets("Sheet1").Range("A4").Value = "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value = "PAS TROUVE"
End If
Erase Tblo
j = 0
impeccable. Un grand merci à toi. Sais-tu juste si la methode que j'utilisais ne marchait pas a cause de "line input" qui me construit mon tableau par ligne?
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
Michel Pierron
Re Top100; Parce que tu remplis mal ton tableau dont tu n'as d'ailleurs pas besoin:
Dim Content As String, OK As Boolean Open FICHIER1 For Input As #1 Do While Not EOF(1) Line Input #1, Content OK = CBool(InStr(1, Content, "TOTO")) If OK Then Exit Do Loop Close #1 If OK Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If
MP
"Top100" a écrit dans le message de news:
impeccable. Un grand merci à toi. Sais-tu juste si la methode que j'utilisais ne marchait pas a cause de "line input" qui me construit mon tableau par ligne?
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
Re Top100;
Parce que tu remplis mal ton tableau dont tu n'as d'ailleurs pas besoin:
Dim Content As String, OK As Boolean
Open FICHIER1 For Input As #1
Do While Not EOF(1)
Line Input #1, Content
OK = CBool(InStr(1, Content, "TOTO"))
If OK Then Exit Do
Loop
Close #1
If OK Then
Sheets("Sheet1").Range("A4").Value = "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value = "PAS TROUVE"
End If
MP
"Top100" <vincent.topsent@ceram.fr> a écrit dans le message de news:
1167226627.197217.270850@42g2000cwt.googlegroups.com...
impeccable. Un grand merci à toi. Sais-tu juste si la methode que
j'utilisais ne marchait pas a cause de "line input" qui me construit
mon tableau par ligne?
Bonjour Top100;
Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile
Open txtFile For Binary Access Read As #f
Buffer = String(LOF(f), Chr(0))
Get #f, , Buffer
Close #f
Info = "NON TROUVE"
If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5)
Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" <vincent.topsent@ceram.fr> a écrit dans le message de news:
1167216747.084624.34610@79g2000cws.googlegroups.com...
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces
sortes de choses
Je cherche une valeur (toto) dans un tableau VBA construit à partir
d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du
mpfe et de ma phosphoration.
Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la
variable "position" prennait la valeur "error 2015". Le problème vient
il du fait que je construise mon tableau avec Line Input et que la
valeur cherchée est une chaine de caratères INCLUS dans la ligne ?
d'ou mes 2 questions :
1/ comment resoudre ce pb sans transformer mon portable en freesbee le
plus cher du monde
2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox
error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1
'récupère toutes les valeurs du fichier dans un tableau
Do While Not EOF(1)
j = j + 1
ReDim Preserve Tblo(1 To j)
Line Input #1, Tblo(j)
Loop
'Sort de la macro si le fichier est vide ou n'existe pas
If j = 0 Then
Exit Sub
End If
'recherche la valeur TOTO
For j = 1 To UBound(Tblo)
position = Application.Match("TOTO", Tblo(j), 0)
Next j
'referme le fichier avant de le ré-ouvrir en écriture
Close #1
If Err <> 0 Then
Sheets("Sheet1").Range("A4").Value = "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value = "PAS TROUVE"
End If
Erase Tblo
j = 0
Re Top100; Parce que tu remplis mal ton tableau dont tu n'as d'ailleurs pas besoin:
Dim Content As String, OK As Boolean Open FICHIER1 For Input As #1 Do While Not EOF(1) Line Input #1, Content OK = CBool(InStr(1, Content, "TOTO")) If OK Then Exit Do Loop Close #1 If OK Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If
MP
"Top100" a écrit dans le message de news:
impeccable. Un grand merci à toi. Sais-tu juste si la methode que j'utilisais ne marchait pas a cause de "line input" qui me construit mon tableau par ligne?
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
Top100
ok merci pour tout ça, je vais retravailler ma macro (ou j'utilise plusieurs fois le tableau) dans ce sens. Bonne soirée.
Re Top100; Parce que tu remplis mal ton tableau dont tu n'as d'ailleurs pas besoin:
Dim Content As String, OK As Boolean Open FICHIER1 For Input As #1 Do While Not EOF(1) Line Input #1, Content OK = CBool(InStr(1, Content, "TOTO")) If OK Then Exit Do Loop Close #1 If OK Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If
MP
"Top100" a écrit dans le message de news:
impeccable. Un grand merci à toi. Sais-tu juste si la methode que j'utilisais ne marchait pas a cause de "line input" qui me construit mon tableau par ligne?
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0
ok merci pour tout ça, je vais retravailler ma macro (ou j'utilise
plusieurs fois le tableau) dans ce sens.
Bonne soirée.
Re Top100;
Parce que tu remplis mal ton tableau dont tu n'as d'ailleurs pas besoin:
Dim Content As String, OK As Boolean
Open FICHIER1 For Input As #1
Do While Not EOF(1)
Line Input #1, Content
OK = CBool(InStr(1, Content, "TOTO"))
If OK Then Exit Do
Loop
Close #1
If OK Then
Sheets("Sheet1").Range("A4").Value = "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value = "PAS TROUVE"
End If
MP
"Top100" <vincent.topsent@ceram.fr> a écrit dans le message de news:
1167226627.197217.270850@42g2000cwt.googlegroups.com...
impeccable. Un grand merci à toi. Sais-tu juste si la methode que
j'utilisais ne marchait pas a cause de "line input" qui me construit
mon tableau par ligne?
Bonjour Top100;
Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile
Open txtFile For Binary Access Read As #f
Buffer = String(LOF(f), Chr(0))
Get #f, , Buffer
Close #f
Info = "NON TROUVE"
If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5)
Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" <vincent.topsent@ceram.fr> a écrit dans le message de news:
1167216747.084624.34610@79g2000cws.googlegroups.com...
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces
sortes de choses
Je cherche une valeur (toto) dans un tableau VBA construit à partir
d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du
mpfe et de ma phosphoration.
Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la
variable "position" prennait la valeur "error 2015". Le problème vient
il du fait que je construise mon tableau avec Line Input et que la
valeur cherchée est une chaine de caratères INCLUS dans la ligne ?
d'ou mes 2 questions :
1/ comment resoudre ce pb sans transformer mon portable en freesbee le
plus cher du monde
2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox
error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1
'récupère toutes les valeurs du fichier dans un tableau
Do While Not EOF(1)
j = j + 1
ReDim Preserve Tblo(1 To j)
Line Input #1, Tblo(j)
Loop
'Sort de la macro si le fichier est vide ou n'existe pas
If j = 0 Then
Exit Sub
End If
'recherche la valeur TOTO
For j = 1 To UBound(Tblo)
position = Application.Match("TOTO", Tblo(j), 0)
Next j
'referme le fichier avant de le ré-ouvrir en écriture
Close #1
If Err <> 0 Then
Sheets("Sheet1").Range("A4").Value = "TROUVE"
Else
Sheets("Sheet1").Range("A5").Value = "PAS TROUVE"
End If
Erase Tblo
j = 0
ok merci pour tout ça, je vais retravailler ma macro (ou j'utilise plusieurs fois le tableau) dans ce sens. Bonne soirée.
Re Top100; Parce que tu remplis mal ton tableau dont tu n'as d'ailleurs pas besoin:
Dim Content As String, OK As Boolean Open FICHIER1 For Input As #1 Do While Not EOF(1) Line Input #1, Content OK = CBool(InStr(1, Content, "TOTO")) If OK Then Exit Do Loop Close #1 If OK Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If
MP
"Top100" a écrit dans le message de news:
impeccable. Un grand merci à toi. Sais-tu juste si la methode que j'utilisais ne marchait pas a cause de "line input" qui me construit mon tableau par ligne?
Bonjour Top100; Il me semble que ce serait plus simple avec ceci:
Dim Info$, Buffer$, f%: f = FreeFile Open txtFile For Binary Access Read As #f Buffer = String(LOF(f), Chr(0)) Get #f, , Buffer Close #f Info = "NON TROUVE" If InStr(1, Buffer, "TOTO") Then Info = Mid$(Info, 5) Sheets("Sheet1").Range("A4").Value = Info
MP
"Top100" a écrit dans le message de news:
Bien le Bonjour à tous, joyeux noel, bonnes fêtes et toutes ces sortes de choses Je cherche une valeur (toto) dans un tableau VBA construit à partir d'un fichier texte. Voici le code que j'ai fait à partir de l'aide, du mpfe et de ma phosphoration. Bien sur, cela ne marche pas. En mode pas à pas, j'ai vu que la variable "position" prennait la valeur "error 2015". Le problème vient il du fait que je construise mon tableau avec Line Input et que la valeur cherchée est une chaine de caratères INCLUS dans la ligne ? d'ou mes 2 questions : 1/ comment resoudre ce pb sans transformer mon portable en freesbee le plus cher du monde 2/ comment connaitre le libellé d'une erreur. J'ai essayé Sub msgbox error 2015 End sub mais sans résultat.
Merci bien.
Open FICHIER1 For Input As #1 'récupère toutes les valeurs du fichier dans un tableau Do While Not EOF(1) j = j + 1 ReDim Preserve Tblo(1 To j) Line Input #1, Tblo(j) Loop 'Sort de la macro si le fichier est vide ou n'existe pas If j = 0 Then Exit Sub End If 'recherche la valeur TOTO For j = 1 To UBound(Tblo) position = Application.Match("TOTO", Tblo(j), 0) Next j 'referme le fichier avant de le ré-ouvrir en écriture Close #1 If Err <> 0 Then Sheets("Sheet1").Range("A4").Value = "TROUVE" Else Sheets("Sheet1").Range("A5").Value = "PAS TROUVE" End If Erase Tblo j = 0