Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 77
    Points : 86
    Points
    86

    Par défaut Rechercher/Supprimer une portion de texte dans une chaîne de texte

    Bonsoir,

    Je cherche à supprimer dans un texte une portion de ce dernier pour n'intégrer que ce qui est utile dans une table de ma BDD.

    Il s'agit en fait du code source d'une page web, dont je souhaite supprimer un lien, situé toujours au même endroit mais dont l'url n'est jamais la même.

    Dans le code source de la page, j'ai délimité l'emplacement via une balise commentaire du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!Blablabla><a href="http://www.toto.fr">toto</a><!Bliblibli>
    Je peux donc précisément dire à vba de rechercher <!Blablabla> ou <!Bliblibli> mais comment faire pour lui demander de supprimer tout ce qui commence par <!Blablabla> et se termine par <!Bliblibli> et uniquement cela. Je sèche un peu alors toute aide sera la bienvenue.

    Bien à vous.
    el

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 77
    Points : 86
    Points
    86

    Par défaut

    Bon, en bidouillant un peu j'ai trouvé une solution qui semble marcher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim lnDebut as long, lnFin as long, strSuppr as string
     
    ' Détermination du rang du premier caractère à supprimer
    lnDebut = InStr(MaChaineHTML,"<!Blablabla>")
     
    ' Détermination du rang du dernier caractère à supprimer
    lnFin = InStrRev(MaChaineHTML, "<!Bliblibli>") + 12
     
    ' Récupération de la chaîne à supprimer
    strSuppr = Mid(MaChaineHTML, lnDebut, lnFin - lnDebut)
     
    ' Suppression de la chaîne dans le code source de la page
    MaChaineHTML = Replace(MaChaineHTML, strSuppr, "")
    Je testerai sur des cas concrets prochainement, si vous avez une façon plus élégante de parvenir au même résultat, je suis 1000 fois preneur !
    el

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    19 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 496
    Points : 147 791
    Points
    147 791

    Par défaut

    Bonjour,

    Une piste :



    ... mais il y a ce problème des guillemets dans l'original.

    Edit
    Pas de problème, si on passe l’argument via une variable



    Fichiers attachés Fichiers attachés
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 77
    Points : 86
    Points
    86

    Par défaut

    Wow ! Merci Claude pour cette aide précieuse.

    Je regarde cela de plus près et reviens pour commenter/clôturer cette demande.
    el

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 77
    Points : 86
    Points
    86

    Par défaut

    Bonjour Claude,

    J'ai testé et ça marche parfaitement. J'ai aménagé ta fonction afin de pouvoir passer en paramètres les portions de textes qui délimitent le découpage. Voilà ce que cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Function Expurge(strO As String, strD As String, Optional strF As String) As String
     
    On Error Resume Next
     
    Dim Part1() As String, Part2() As String
     
    Part1 = Split(strO, strD)
    If Nz(strF, "") <> "" Then
    Part2 = Split(strO, strF)
    Expurge = Part1(0) & Part2(1)
    Else
    Expurge = Part1(0)
    End If
     
    End Function
    Je ne connaissais pas cette fonction Split()

    Merci pour ton aide. Je clôture cette demande.
    el

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    19 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 19 496
    Points : 147 791
    Points
    147 791

    Par défaut

    OK mais
    On Error Resume Next
    me paraît bien téméraire : ça correspond à casser le thermomètre quand il indique que tu as de la fièvre.
    Quoi qu'il en soit, chacun ses remèdes.

    À la prochaine.
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 77
    Points : 86
    Points
    86

    Par défaut

    Tu as raison, j'ai supprimé le on error...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/11/2011, 01h55
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  4. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40
  5. Réponses: 3
    Dernier message: 06/09/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo