J'utilise en VBA la fonction InStr de la façon suivante:
sP = InStr(1, sContenu, "1ère",1)
Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte
"1ère"...
Où est l'erreur?
Merci d'avance pour votre aide
Cordialement, Mikel
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
Jean-marc
Mikel wrote:
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Hello,
C'est curieux. A ce que je sache, le InStr de VBA est le même que celui de VB et en VB, ceci fonctionne:
Dim txt As String Dim pat As String Dim sp As Long
txt = "La 1ère fois" pat = "1ère"
sp = InStr(1, txt, pat, 1)
MsgBox "sp = " & sp
A l'exécution, Sp vaut bien 4, ce qui est la valeur attendue.
J'utilise en VBA la fonction InStr de la façon suivante:
sP = InStr(1, sContenu, "1ère",1)
Elle me retourne 0 alors que dans le string sContenu, j'ai bien le
texte "1ère"...
Où est l'erreur?
Merci d'avance pour votre aide
Cordialement, Mikel
Hello,
C'est curieux. A ce que je sache, le InStr de VBA est le même
que celui de VB et en VB, ceci fonctionne:
Dim txt As String
Dim pat As String
Dim sp As Long
txt = "La 1ère fois"
pat = "1ère"
sp = InStr(1, txt, pat, 1)
MsgBox "sp = " & sp
A l'exécution, Sp vaut bien 4, ce qui est la valeur attendue.
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Hello,
C'est curieux. A ce que je sache, le InStr de VBA est le même que celui de VB et en VB, ceci fonctionne:
Dim txt As String Dim pat As String Dim sp As Long
txt = "La 1ère fois" pat = "1ère"
sp = InStr(1, txt, pat, 1)
MsgBox "sp = " & sp
A l'exécution, Sp vaut bien 4, ce qui est la valeur attendue.
Il y a souvent des problèmes de code relatifs aux accents. Dans le petit test, on utilise le même programme pour créer et tester. Dans le fichier, il y peut-être un autre code de "è". Il faudrait tester un asc(chaque caractère), ou bien un dump hexa du fichier original.
-- Jean Paulo "Jean-marc" a écrit dans le message de news: 48a5490b$0$2860$
Mikel wrote:
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Hello,
C'est curieux. A ce que je sache, le InStr de VBA est le même que celui de VB et en VB, ceci fonctionne:
Dim txt As String Dim pat As String Dim sp As Long
txt = "La 1ère fois" pat = "1ère"
sp = InStr(1, txt, pat, 1)
MsgBox "sp = " & sp
A l'exécution, Sp vaut bien 4, ce qui est la valeur attendue.
Il y a souvent des problèmes de code relatifs aux accents. Dans le petit
test, on utilise le même
programme pour créer et tester. Dans le fichier, il y peut-être un autre
code de "è". Il faudrait
tester un asc(chaque caractère), ou bien un dump hexa du fichier original.
--
Jean Paulo
"Jean-marc" <jm@nowhere.invalid> a écrit dans le message de news:
48a5490b$0$2860$ba620e4c@news.skynet.be...
Mikel wrote:
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante:
sP = InStr(1, sContenu, "1ère",1)
Elle me retourne 0 alors que dans le string sContenu, j'ai bien le
texte "1ère"...
Où est l'erreur?
Merci d'avance pour votre aide
Cordialement, Mikel
Hello,
C'est curieux. A ce que je sache, le InStr de VBA est le même
que celui de VB et en VB, ceci fonctionne:
Dim txt As String
Dim pat As String
Dim sp As Long
txt = "La 1ère fois"
pat = "1ère"
sp = InStr(1, txt, pat, 1)
MsgBox "sp = " & sp
A l'exécution, Sp vaut bien 4, ce qui est la valeur attendue.
Il y a souvent des problèmes de code relatifs aux accents. Dans le petit test, on utilise le même programme pour créer et tester. Dans le fichier, il y peut-être un autre code de "è". Il faudrait tester un asc(chaque caractère), ou bien un dump hexa du fichier original.
-- Jean Paulo "Jean-marc" a écrit dans le message de news: 48a5490b$0$2860$
Mikel wrote:
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Hello,
C'est curieux. A ce que je sache, le InStr de VBA est le même que celui de VB et en VB, ceci fonctionne:
Dim txt As String Dim pat As String Dim sp As Long
txt = "La 1ère fois" pat = "1ère"
sp = InStr(1, txt, pat, 1)
MsgBox "sp = " & sp
A l'exécution, Sp vaut bien 4, ce qui est la valeur attendue.
Il y a souvent des problèmes de code relatifs aux accents. Dans le petit test, on utilise le même programme pour créer et tester. Dans le fichier, il y peut-être un autre code de "è". Il faudrait tester un asc(chaque caractère), ou bien un dump hexa du fichier
C'est même presque sur et c'est ce à quoi je pensais en demandant à voir un petit bout de code :-)
C'est pourquoi il faut être très prudent avec l'utilisation des caractères diacritiques car cela demande une compréhension approfondie des notions d'encodage, de page de code, etc.
Même pour des informaticiens professionnels chevronnés, cela reste un problème non trivial, voire parfois très complexe.
Il y a souvent des problèmes de code relatifs aux accents. Dans le
petit test, on utilise le même
programme pour créer et tester. Dans le fichier, il y peut-être un
autre code de "è". Il faudrait
tester un asc(chaque caractère), ou bien un dump hexa du fichier
C'est même presque sur et c'est ce à quoi je pensais en demandant à
voir un petit bout de code :-)
C'est pourquoi il faut être très prudent avec l'utilisation des
caractères diacritiques car cela demande une compréhension
approfondie des notions d'encodage, de page de code, etc.
Même pour des informaticiens professionnels chevronnés, cela reste
un problème non trivial, voire parfois très complexe.
Il y a souvent des problèmes de code relatifs aux accents. Dans le petit test, on utilise le même programme pour créer et tester. Dans le fichier, il y peut-être un autre code de "è". Il faudrait tester un asc(chaque caractère), ou bien un dump hexa du fichier
C'est même presque sur et c'est ce à quoi je pensais en demandant à voir un petit bout de code :-)
C'est pourquoi il faut être très prudent avec l'utilisation des caractères diacritiques car cela demande une compréhension approfondie des notions d'encodage, de page de code, etc.
Même pour des informaticiens professionnels chevronnés, cela reste un problème non trivial, voire parfois très complexe.
Précisément, le fichier .txt est constitué de la façon suivante, à partir du VBA Excel 2007: - on récupère le code source d'une page web (française) par WinHttp.WinHttpRequest.5.1, - ce code est converti du binaire en string par ADODB.Stream dans lequel il y a un paramètre .charset="us-ascii" Peut-être faut-il utiliser un autre charset???? J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Cordialement, Mikel
"Mikel" a écrit dans le message de news: 48a5452c$0$957$
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Bonjour!
Précisément, le fichier .txt est constitué de la façon suivante, à partir du
VBA Excel 2007:
- on récupère le code source d'une page web (française) par
WinHttp.WinHttpRequest.5.1,
- ce code est converti du binaire en string par ADODB.Stream dans lequel il
y a un paramètre .charset="us-ascii"
Peut-être faut-il utiliser un autre charset????
J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Cordialement, Mikel
"Mikel" <mikel.d@wanadoo.fr> a écrit dans le message de news:
48a5452c$0$957$ba4acef3@news.orange.fr...
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante:
sP = InStr(1, sContenu, "1ère",1)
Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte
"1ère"...
Où est l'erreur?
Merci d'avance pour votre aide
Cordialement, Mikel
Précisément, le fichier .txt est constitué de la façon suivante, à partir du VBA Excel 2007: - on récupère le code source d'une page web (française) par WinHttp.WinHttpRequest.5.1, - ce code est converti du binaire en string par ADODB.Stream dans lequel il y a un paramètre .charset="us-ascii" Peut-être faut-il utiliser un autre charset???? J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Cordialement, Mikel
"Mikel" a écrit dans le message de news: 48a5452c$0$957$
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Jean-marc
Mikel wrote:
Bonjour!
Précisément, le fichier .txt est constitué de la façon suivante, à partir du VBA Excel 2007: - on récupère le code source d'une page web (française) par WinHttp.WinHttpRequest.5.1, - ce code est converti du binaire en string par ADODB.Stream dans lequel il y a un paramètre .charset="us-ascii" Peut-être faut-il utiliser un autre charset???? J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Hello,
Tout s'explique... Tu peux regarder du codé des fonctions CharToOem et les focntions réciproques: http://msdn.microsoft.com/en-us/library/ms647473(VS.85).aspx
Beaucoup de tests en perspective, j'en ai peur.
Tu peux aussi Googler et regarder les liens de cette page: http://www.google.fr/search?hl=fr&safe=off&q=VB+oem+page+de+code&meta La solution est là, avec pas mal de lecture en perspective.
Tu peux aussi investiguer en regardant les codes ascii de ton fichier texte, avec les fonctions Asc(), Chr$() et consorts.
Précisément, le fichier .txt est constitué de la façon suivante, à
partir du VBA Excel 2007:
- on récupère le code source d'une page web (française) par
WinHttp.WinHttpRequest.5.1,
- ce code est converti du binaire en string par ADODB.Stream dans
lequel il y a un paramètre .charset="us-ascii"
Peut-être faut-il utiliser un autre charset????
J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Hello,
Tout s'explique... Tu peux regarder du codé des fonctions CharToOem et
les focntions réciproques:
http://msdn.microsoft.com/en-us/library/ms647473(VS.85).aspx
Beaucoup de tests en perspective, j'en ai peur.
Tu peux aussi Googler et regarder les liens de cette page:
http://www.google.fr/search?hl=fr&safe=off&q=VB+oem+page+de+code&meta
La solution est là, avec pas mal de lecture en perspective.
Tu peux aussi investiguer en regardant les codes ascii de ton fichier texte,
avec les fonctions Asc(), Chr$() et consorts.
Précisément, le fichier .txt est constitué de la façon suivante, à partir du VBA Excel 2007: - on récupère le code source d'une page web (française) par WinHttp.WinHttpRequest.5.1, - ce code est converti du binaire en string par ADODB.Stream dans lequel il y a un paramètre .charset="us-ascii" Peut-être faut-il utiliser un autre charset???? J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Hello,
Tout s'explique... Tu peux regarder du codé des fonctions CharToOem et les focntions réciproques: http://msdn.microsoft.com/en-us/library/ms647473(VS.85).aspx
Beaucoup de tests en perspective, j'en ai peur.
Tu peux aussi Googler et regarder les liens de cette page: http://www.google.fr/search?hl=fr&safe=off&q=VB+oem+page+de+code&meta La solution est là, avec pas mal de lecture en perspective.
Tu peux aussi investiguer en regardant les codes ascii de ton fichier texte, avec les fonctions Asc(), Chr$() et consorts.
Oui. Je n'ai aucun des outils en question! Mais pour résoudre le problème, il faut un dump du fichier, avec un outil comme Winhex ou autre outil plus gratuit.
On peut aussi, comme je l'ai dit, faire simplement une boucle dans VBA for i = 1 to len(machaine) debug.print asc(mid$(machaine,i,1)), next i Dans la fenêtre d'exécution sera affiché chaque caractère. Pour moi, le code "é" de VB est 233.
Sur une page web, en Usascii, ce serait peut-aussi être 2 ou 3 caractères... comme é
(voir http://en.wikipedia.org/wiki/ASCII) et http://www.terena.org/activities/multiling/euroml/tests/html-eurolat1.html
Bonne chance
-- Jean Paulo "Mikel" a écrit dans le message de news: 48a68937$0$900$
Bonjour!
Précisément, le fichier .txt est constitué de la façon suivante, à partir du VBA Excel 2007: - on récupère le code source d'une page web (française) par WinHttp.WinHttpRequest.5.1, - ce code est converti du binaire en string par ADODB.Stream dans lequel il y a un paramètre .charset="us-ascii" Peut-être faut-il utiliser un autre charset???? J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Cordialement, Mikel
"Mikel" a écrit dans le message de news: 48a5452c$0$957$
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Bonjour.
Oui. Je n'ai aucun des outils en question! Mais pour résoudre le problème,
il faut un dump du fichier, avec
un outil comme Winhex ou autre outil plus gratuit.
On peut aussi, comme je l'ai dit, faire simplement une boucle dans VBA
for i = 1 to len(machaine)
debug.print asc(mid$(machaine,i,1)),
next i
Dans la fenêtre d'exécution sera affiché chaque caractère. Pour moi, le code
"é" de VB est 233.
Sur une page web, en Usascii, ce serait peut-aussi être 2 ou 3
caractères... comme é
(voir http://en.wikipedia.org/wiki/ASCII) et
http://www.terena.org/activities/multiling/euroml/tests/html-eurolat1.html
Bonne chance
--
Jean Paulo
"Mikel" <mikel.d@wanadoo.fr> a écrit dans le message de news:
48a68937$0$900$ba4acef3@news.orange.fr...
Bonjour!
Précisément, le fichier .txt est constitué de la façon suivante, à partir
du VBA Excel 2007:
- on récupère le code source d'une page web (française) par
WinHttp.WinHttpRequest.5.1,
- ce code est converti du binaire en string par ADODB.Stream dans lequel
il y a un paramètre .charset="us-ascii"
Peut-être faut-il utiliser un autre charset????
J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Cordialement, Mikel
"Mikel" <mikel.d@wanadoo.fr> a écrit dans le message de news:
48a5452c$0$957$ba4acef3@news.orange.fr...
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante:
sP = InStr(1, sContenu, "1ère",1)
Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte
"1ère"...
Où est l'erreur?
Merci d'avance pour votre aide
Cordialement, Mikel
Oui. Je n'ai aucun des outils en question! Mais pour résoudre le problème, il faut un dump du fichier, avec un outil comme Winhex ou autre outil plus gratuit.
On peut aussi, comme je l'ai dit, faire simplement une boucle dans VBA for i = 1 to len(machaine) debug.print asc(mid$(machaine,i,1)), next i Dans la fenêtre d'exécution sera affiché chaque caractère. Pour moi, le code "é" de VB est 233.
Sur une page web, en Usascii, ce serait peut-aussi être 2 ou 3 caractères... comme é
(voir http://en.wikipedia.org/wiki/ASCII) et http://www.terena.org/activities/multiling/euroml/tests/html-eurolat1.html
Bonne chance
-- Jean Paulo "Mikel" a écrit dans le message de news: 48a68937$0$900$
Bonjour!
Précisément, le fichier .txt est constitué de la façon suivante, à partir du VBA Excel 2007: - on récupère le code source d'une page web (française) par WinHttp.WinHttpRequest.5.1, - ce code est converti du binaire en string par ADODB.Stream dans lequel il y a un paramètre .charset="us-ascii" Peut-être faut-il utiliser un autre charset???? J'ai essayé charset="iso-8859-1", mais ça n'a rien arrangé!!!
Cordialement, Mikel
"Mikel" a écrit dans le message de news: 48a5452c$0$957$
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Mikel
Bonsoir!
Merci pour vos réponses! Votre aide m'a été précieuse car j'ai approfondi un domaine peu exploré! En fait, mes pages web sont codées en UTF-8. J'a trouvé la petite fonction suivante http://www.aspfr.com/codes/CONVERSION-CARACTERES-UTF-VERS-FRANCAIS_41904.aspx qui me permet de retrouver un fichier plus sympathique et de régler mon problème! -- Cordialement, Mikel
"Mikel" a écrit dans le message de news: 48a5452c$0$957$
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel
Bonsoir!
Merci pour vos réponses! Votre aide m'a été précieuse car j'ai approfondi un
domaine peu exploré!
En fait, mes pages web sont codées en UTF-8.
J'a trouvé la petite fonction suivante
http://www.aspfr.com/codes/CONVERSION-CARACTERES-UTF-VERS-FRANCAIS_41904.aspx
qui me permet de retrouver un fichier plus sympathique et de régler mon
problème!
--
Cordialement, Mikel
"Mikel" <mikel.d@wanadoo.fr> a écrit dans le message de news:
48a5452c$0$957$ba4acef3@news.orange.fr...
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante:
sP = InStr(1, sContenu, "1ère",1)
Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte
"1ère"...
Où est l'erreur?
Merci d'avance pour votre aide
Cordialement, Mikel
Merci pour vos réponses! Votre aide m'a été précieuse car j'ai approfondi un domaine peu exploré! En fait, mes pages web sont codées en UTF-8. J'a trouvé la petite fonction suivante http://www.aspfr.com/codes/CONVERSION-CARACTERES-UTF-VERS-FRANCAIS_41904.aspx qui me permet de retrouver un fichier plus sympathique et de régler mon problème! -- Cordialement, Mikel
"Mikel" a écrit dans le message de news: 48a5452c$0$957$
Bonjour!
J'utilise en VBA la fonction InStr de la façon suivante: sP = InStr(1, sContenu, "1ère",1) Elle me retourne 0 alors que dans le string sContenu, j'ai bien le texte "1ère"... Où est l'erreur? Merci d'avance pour votre aide Cordialement, Mikel