récupérer dans une msgbox une chaine de caractères entre 2 indicateurs?
5 réponses
Fg
Bonjour,
J'aimerais récupérer dans une msgbox une chaine de caractères dont je
connais le début et la fin de la chaine.
Exemple : je voudrais extraire la chaine d' un code source html
"<TD class=textdata....TD>" et dans cette même chaine extraire l'info que je
veux...attention entre les 2 indicateurs de début et de fin, la chaine peut
être différente?
Merci
La fonction STXT extraie un certain nombre de caractères TROUVE va trouver tes indicateurs NBCAR détermine la longueur de la chaîne
le +3 est le nombre de caractères cherché dans le premier TROUVE
essaie ca ! :)
Ok mais comment je l'introduis dans la macro...pour ensuite le faire
apparaitre avec la Msgbox???
Merci tout de même!
"tiah" <tiah.newsgroup@gmail.com> a écrit dans le message de news:
1129138510.027362.205760@o13g2000cwo.googlegroups.com...
=STXT(A1;TROUVE("<TD";A1)+3;(NBCAR(A1)-TROUVE("TD>";A1))+TROUVE("<TD";A1))
La fonction STXT extraie un certain nombre de caractères
TROUVE va trouver tes indicateurs
NBCAR détermine la longueur de la chaîne
le +3 est le nombre de caractères cherché dans le premier TROUVE
La fonction STXT extraie un certain nombre de caractères TROUVE va trouver tes indicateurs NBCAR détermine la longueur de la chaîne
le +3 est le nombre de caractères cherché dans le premier TROUVE
essaie ca ! :)
michdenis
Bonjour Fg,
la fonction split requiert excel 2000 ou plus récent .
'--------------------------- Sub test()
Dim V As String, R As String
V = "<TD class=textdata....TD>"
R = Trim(Split(V, "TD")(1)) MsgBox R
End Sub '---------------------------
Salutations!
"Fg" a écrit dans le message de news: 434d5c7d$0$18076$ Ok mais comment je l'introduis dans la macro...pour ensuite le faire apparaitre avec la Msgbox??? Merci tout de même!
La fonction STXT extraie un certain nombre de caractères TROUVE va trouver tes indicateurs NBCAR détermine la longueur de la chaîne
le +3 est le nombre de caractères cherché dans le premier TROUVE
essaie ca ! :)
Bonjour Fg,
la fonction split requiert excel 2000 ou plus récent .
'---------------------------
Sub test()
Dim V As String, R As String
V = "<TD class=textdata....TD>"
R = Trim(Split(V, "TD")(1))
MsgBox R
End Sub
'---------------------------
Salutations!
"Fg" <fredgarlon@free.fr> a écrit dans le message de news: 434d5c7d$0$18076$626a14ce@news.free.fr...
Ok mais comment je l'introduis dans la macro...pour ensuite le faire
apparaitre avec la Msgbox???
Merci tout de même!
"tiah" <tiah.newsgroup@gmail.com> a écrit dans le message de news:
1129138510.027362.205760@o13g2000cwo.googlegroups.com...
=STXT(A1;TROUVE("<TD";A1)+3;(NBCAR(A1)-TROUVE("TD>";A1))+TROUVE("<TD";A1))
La fonction STXT extraie un certain nombre de caractères
TROUVE va trouver tes indicateurs
NBCAR détermine la longueur de la chaîne
le +3 est le nombre de caractères cherché dans le premier TROUVE
la fonction split requiert excel 2000 ou plus récent .
'--------------------------- Sub test()
Dim V As String, R As String
V = "<TD class=textdata....TD>"
R = Trim(Split(V, "TD")(1)) MsgBox R
End Sub '---------------------------
Salutations!
"Fg" a écrit dans le message de news: 434d5c7d$0$18076$ Ok mais comment je l'introduis dans la macro...pour ensuite le faire apparaitre avec la Msgbox??? Merci tout de même!
J'ai testé les 2 solutions...mais le souci est que dans l'hypothèse de départ si je connais bien les balises je ne connais pas complètement la chaine (car elle varie!!) exemple : Dans un premier temps je dois faire un "find" des balises <TD class=txtdata et l'autre balise </TD> et entre ces balises j'ai : <TD class=txtdata>28 résultats</B></TD> et en fait j'aimerais que la msgbox affiche "28 résultats" Mais le nombre de résultat varie en fonction des requêtes tiah j'ai corrigé ta ligne Sortie Sortie = Mid(texte, InStr("<TD", texte) + 3, (Len(texte) - InStr("TD>", texte)) + InStr("<TD", texte)) Mais le problème reste le même...texte est variable!!!
"tiah" a écrit dans le message de news:
wouah ! j'ai manqué le msgbox ! j'avais pas vu ça ! :) désolée !
Je ne connais pas la fonction split mentionnée, mais l'équivalent de ma formule en vba est la suivante :
J'ai testé les 2 solutions...mais le souci est que dans l'hypothèse de
départ si je connais bien les balises je ne connais pas complètement la
chaine (car elle varie!!)
exemple :
Dans un premier temps je dois faire un "find" des balises
<TD class=txtdata et l'autre balise </TD>
et entre ces balises j'ai :
<TD class=txtdata>28 résultats</B></TD>
et en fait j'aimerais que la msgbox affiche "28 résultats"
Mais le nombre de résultat varie en fonction des requêtes
tiah j'ai corrigé ta ligne Sortie
Sortie = Mid(texte, InStr("<TD", texte) + 3, (Len(texte) - InStr("TD>",
texte)) + InStr("<TD", texte))
Mais le problème reste le même...texte est variable!!!
"tiah" <tiah.newsgroup@gmail.com> a écrit dans le message de news:
1129146923.621334.30000@o13g2000cwo.googlegroups.com...
wouah ! j'ai manqué le msgbox ! j'avais pas vu ça ! :) désolée !
Je ne connais pas la fonction split mentionnée, mais l'équivalent de
ma formule en vba est la suivante :
J'ai testé les 2 solutions...mais le souci est que dans l'hypothèse de départ si je connais bien les balises je ne connais pas complètement la chaine (car elle varie!!) exemple : Dans un premier temps je dois faire un "find" des balises <TD class=txtdata et l'autre balise </TD> et entre ces balises j'ai : <TD class=txtdata>28 résultats</B></TD> et en fait j'aimerais que la msgbox affiche "28 résultats" Mais le nombre de résultat varie en fonction des requêtes tiah j'ai corrigé ta ligne Sortie Sortie = Mid(texte, InStr("<TD", texte) + 3, (Len(texte) - InStr("TD>", texte)) + InStr("<TD", texte)) Mais le problème reste le même...texte est variable!!!
"tiah" a écrit dans le message de news:
wouah ! j'ai manqué le msgbox ! j'avais pas vu ça ! :) désolée !
Je ne connais pas la fonction split mentionnée, mais l'équivalent de ma formule en vba est la suivante :