Recherche par la gauche

Bonjour

Une question pour ma culture

connaissais vous une méthode pour coller le texte qui se trouve à gauche du texte trouver en plus du texte lui même ?

Par exemple dire : Si tu trouve CET alors colle moi 2021-02-01 05:46 CET

Un peu du style : mais au lieu de partir vers la droite il va vers la gauche

    Debug.Print InStr(Http.responseText, "CET")
    Heure = Mid(Http.responseText, InStr(Http.responseText, "CET"), 5)
    [B4] = Heure
image

Bonjour Shenzar,

Il est possible d'utiliser la fonctionStrReverse : https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/strreverse-functi...

Mais il est surtout possible d'utiliser autrement la fonction Mid :

heure = Mid(Http.responseText, InStr(Http.responseText, "CET") - 6, 5)

Ou de chercher le premier espace avec Instr...

Ou même ici d'utiliser split :

t = split(Http.responseText, " ")
for i = lbound(t) to ubound(t)
    if t(i) like "*:*" then heure = t(i)
next i

'OU DIRECTEMENT

t = split(Http.responseText)(1) '1 car 2è item en base 0 et " " est le séparateur par défaut donc le passer en argument est facultatif

Cdlt,

Bonjour 3GB,

Je savais bien qu'il fallait mettre un - j'étais pas loin

Merci pour le deuxième fonctionne bien aussi

Pour le strReverse je le connaissais, mais c'était pas trop ça

Oui, Mid, c'est vraiment comme STXT et Instr comme CHERCHE...

Mais, perso, j'ai un petit faible pour Split qui sépare une chaine en fonction d'un séparateur pour renvoyer un tableau avec chaque partie du texte. Si tu as toujours un modèle "Date Heure TXT", split(chaine, " ")(1) te renverra toujours la partie n°2 !

A bientôt,

Bonjour,

Oui j'ai vu je vais prendre le split

A la base je cherche l'info par un for each grâce à la balise html qui renvoie, je cherche d'autres méthodes, d'autres solutions en VBA, mais depuis que je nage dans les tableaux VBA depuis quelques semaine, je remarque que c'est vraiment pas mal, plus simple en Python, mais pas mal, mes fichiers VBA vont très vite évoluer

Au plaisir :)

Alors là, pour la boucle sur les éléments, je pourrais rien affirmer mais comme j'ai pas peur de dire des bêtises, je dirais qu'il est peut-être possible de prendre une propriété des éléments dans une variable tableau et de boucler dessus si vraiment la boucle prend du temps :

sub ideesansconviction()

with ohtml
    set ocoll = .getelementsbytagname("balise") 'adapter balise
    t = ocoll.propriétécommune 'adapter propriété commune à chaque élément
    for i = lbound(t) to ubound(t)
        if t(i, 1) like "*critere*" then 'adapter critere et éventuellement changer opérateur like en =
            set elem = ocoll(i) 'affectation element
            elem.click 'par exemple
        end if
    next i
end with

end sub

Mais bon, je ne sais pas si ça marche avec des objets html...

Bonjour

Je vais regarde de plus près ton dernier code

Mon for each ressemble plus à ça

    Dim HTMLDivName As MSHTML.IHTMLElementCollection
    Dim HTMLDiv As MSHTML.IHTMLElement

    Set HTMLDivName = HTMLPage.getElementsByClassName("resourceDrilldownLink")

    For Each HTMLDiv In HTMLDivName
        [B3] = "Data last checked at"
        [B4] = Mid(HTMLDiv.innerText, 12, 5)
    Next

:)

Rechercher des sujets similaires à "recherche gauche"