Comment faire pour supprimer les balises internet avec vba

Signaler
Messages postés
10
Date d'inscription
lundi 17 octobre 2011
Statut
Membre
Dernière intervention
2 mai 2015
-
jordane45
Messages postés
27519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 février 2020
-
Bonjour,
j'aimerai savoir comment on peut fair pour supprimer (pas supprimer m'est durent par exemple jusqu'à la fermeture du vba (exe)) une balise html avec vba

et excel comme recepteur de balise

exemple de balise :
<div class="cs_logo_ccm">
<a href="/"><img src="http://static.ccm2.net/codes-sources.commentcamarche.net/_skin/_local/img/log_ccm_l.png?201007091112" alt="Commentçamarche.net"></a>
</div>

merci de bien vouloir m'aider je suis bloque a ce niveau la

bien à vous

Simplify Software
Direction, David Guillaume

6 réponses

Messages postés
27519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 février 2020
323
Bonjour.
Vous posez une question sur du vba et postez dans vb.net.?..

Sinon, supprimer la balise..pourriez vous être un peu plus précis ?
Vous voulez récupérer du texte à l'intérieur ou la supprimer entièrement ?

Au cas où, regardez du côté des expressions régulières.
Messages postés
27519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 février 2020
323
Re,
Tu peux aussi essayer de passer par la manipulation des chaines de caractères :

Sub test()
Dim baliseDebut As String
Dim baliseFin As String
Dim countBD As Integer
Dim countBF As Integer
Dim Resultat As String
Dim strVariable As String

'Texte à traiter
strVariable = Range("A1").Value


'Parametres
baliseDebut = "<div"
countBD = Len(baliseDebut)
baliseFin = "</div>"
countBF = Len(baliseFin)

'On cherche la position de début et de fin de la chaine
Debut = InStr(1, strVariable, baliseDebut)  ' Position du <div
Fin = InStr(1, strVariable, baliseFin)   ' Position du </div>

Resultat = Mid$(strVariable, Debut + countBD, (Fin - countBF) - Debut)

End Sub


Après... il faut l'adapter en fonction de vos besoins.
Là, on ne sait pas où se trouvent les données, ni comment elles sont disposées ( une cellule contient une balise ? )


gilout1234
Messages postés
10
Date d'inscription
lundi 17 octobre 2011
Statut
Membre
Dernière intervention
2 mai 2015

merci je vais essayer ça
gilout1234
Messages postés
10
Date d'inscription
lundi 17 octobre 2011
Statut
Membre
Dernière intervention
2 mai 2015

j'essaye de faire que une cellule excel contient une balise

et que le vba recherche le lien exemple cellule A1

puis que vba recherche et supprime la balise d'une page web

merci
Messages postés
10
Date d'inscription
lundi 17 octobre 2011
Statut
Membre
Dernière intervention
2 mai 2015

j'essaye de faire que une cellule excel contient une balise

et que le vba recherche le lien exemple cellule A1

puis que vba recherche et supprime la balise d'une page web

merci

--
Messages postés
27519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 février 2020
323
Bonjour,
Je viens de voir que tu as posé la même question hier soir à 23h, sur un autre site...
[ Toujours sans donner d'explications détaillées..comme le fait d'avoir une balise par cellule..etc.. ]

Bref, je suppose donc que tu bloques toujours....

Pourrait-tu nous montrer ce que tu as déjà fait comme code (histoire qu'on essaie de comprendre où tu bloques...) et comment tu as pris en compte ma réponse précédente.

Ne t'attends pas à ce que les gens te fournissent un code "Prêt à l'emploi" ..surtout vu le peu d'informations que tu donnes !!
Par exemple :
-> Dans ma colonne "A" j'ai, dans chaque cellule, une balise html contenant une URL
-> Je souhaites extraire cette URL et supprimer tout les autres éléments des balises HTML ( en remplaçant le contenu de mes cellules en "A" ou en 'copiant' ces liens dans une autre feuille par exemple..
-> etc...


Par contre, petite question : Peux-tu préciser ce que tu entends par :
la fermeture du vba (exe))

Le VBA est un langage de programmation..
- ce n'est pas un EXE !
- Il ne se "ferme" pas ! ( au mieux, la macro se "termine" )
-> Ce qui signifierrai, pour toi, que lorsque tu lances la macro ... elle vire les balises html, extrait les liens... et remet tout comme avant.. => Sans que tu fasses quelque chose avec ces URL ? (quel intérêt ? )



Commence donc par CORRECTEMENT expliquer ta demande.
MONTRE nous ce que tu as déjà essayé de faire comme code
INDIQUE nous où tu bloques

Et au passage...Va faire un tour sur cette page :
http://codes-sources.commentcamarche.net/contents/11-charte-de-commentcamarche-net-conseils-d-ecriture#description-du-probleme

Messages postés
10
Date d'inscription
lundi 17 octobre 2011
Statut
Membre
Dernière intervention
2 mai 2015

je vais changer le sens de ma question

j'aimerai savoir si il y a moyen de supprimer temporairement une balise

HTML avec Virtual basic

Excel--->VBA NON je veux pas utiliser le vba dans le développeur de Excel

Vba --->Exel Oui

donc en résumer vba--->recherche dans le fichier EXCEL une balise html (A,1) durant la fonction macro la balise html se supprime ---> des que la macro se "termine" tous les balise se restaure sur internet

exemple de balise a supprimer temporairement:

<div class="gb_ga"></div>


bien à vous

David G

--
Messages postés
27519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 février 2020
323
Au risque de paraitre désagréable... ce que tu marques NE VEUT RIEN DIRE !
Excel--->VBA NON je veux pas utiliser le vba dans le développeur de Excel
Vba --->Exel Oui

Sais-tu au moins ce qu'est le VBA ?
VBA = Visual Basic for Application
C'est un langage de programmation présent dans un certain nombre de logiciels comme Excel, Word, Access, PowerPoint....

Quoi qu'il arrive, il te faudra donc forcément coder dans l'Editeur VBA (ici celui d'Excel) qu'on appel le VBE : Visual Basic Editor

durant la fonction macro
Une Macro est ce qu'on pourrait apparenter à un SUB.
Une fonction... ben c'est une fonction : Function en VBA

des que la macro se "termine" tous les balise se restaure sur internet
Balise est un mot féminin et tu utilise du pluriel ..donc : TOUTES les baliseS se restaurENT..


Maintenant que ces quelques points ont été abordés, essayons de traiter ta question...

Voila le code qui fait EXACTEMENT ce que tu as demandé

Sub CeciEstUneMACRO()
Dim ValCELLULE As String
Dim ContenuBalise As String
    ValCELLULE = Range("A1").Value
    ContenuBalise = ExtraitContenuBalise(ValCELLULE, "<div", "</div>")
'Suppression de la balise
    Range("A1").Value = ContenuBalise
'remise de la balise
    Range("A1").Value = ValCELLULE
End Sub

Function ExtraitContenuBalise(strVariable As String, baliseDebut As String, baliseFin As String) As String
    Dim Debut As Integer
    Dim Fin As Integer
    Dim countBD As Integer
    Dim countBF As Integer
    countBD = Len(baliseDebut)
    countBF = Len(baliseFin)
'On cherche la position de début et de fin de la chaine
    Debut = InStr(1, strVariable, baliseDebut)
    Fin = InStr(1, strVariable, baliseFin)
ExtraitContenuBalise = Mid$(strVariable, Debut + countBD, (Fin - countBF) - Debut)
End Function



A bon entendeur..

NB: Pense à l'avenir que les membres du site ne sont pas là pour faire TOUT le travail. Normalement, les personnes qui posent des questions, montrent le code qu'elles ont essayé de mettre en place...

NB²: Avant de poser de nouvelles questions sur le forum, merci de lire la CHARTE

Cordialement,
Jordane