Bonjour,
Quelqu'un connaitrait-il une fonction permettant de remplir une listbox avec toutes les adresses internet commençant par une même chaine de caractères?
Merci d'avance
Bonjour,
Quelqu'un connaitrait-il une fonction permettant de remplir une listbox avec toutes les adresses internet commençant par une même chaine de caractères?
Merci d'avance
J'espère que ta chaine de caractère n'est pas "http://" car la tu risque de concurrencer google.
Tes adresses tu les récupère ou? elle sont stocké quelque part? sous quel forme? Un peu de précision pourrais être utile
Sinon voici quelque tuto qui pourrais t'être utile
(je te met directement le lien vers la partie qui a mon avis te sera la plus utile)
Manipuler une chaine de carctère extraire la partie gauche
Utiliser les listbox
Part de ca essaye de commencer ton code et si ca coince viens nous voir
« Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »
Bonjour Krovax,
Mon problème n'est pas de remplir la listbox ni de connaitre la chaine de commencement mais de récupérer les adresses commencant par exemple par "http://www.developpez.net/forums/" et aynt autre chose après le /.
1) je ne sais pas du tout où récupérer les adresses
2) pareil
3) j'en sais pas plus
(A moins que c'est parce que j'ai pas compris ta question)
Sinon c'est a peu près le principe de google sauf que je veux seulement des adresses et non pas le contenu.
salut,
en fait la question est : d'où sors-tu la liste d'adresse ? où se situe le chapeau magique ?
une fois qu'on saura cela, on pourra commencer à te donner d'autres pistes, mais tant qu'on est dans le brouillard, tu ne pourras pas nous trouver
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
Salut,
Ben voilà, on y arrive!
C'est justement ça la question que je me pose!!
Attend laisse moi comprendre tu veux un code qui vas chercher toutes les adresse qui commence d'une certaine facon?
A mon avis le plus simple c'est de demander a google s'il accepte de te donner un acces direct a leur base de donnée. (google ou un autre moteur de recherche)
Sinon tu peux tacheter quelque ordinateur que tu chargera de récupérer des adresse internet. C'est quoi ton budget?
Tu te rend compte de ce que tu demande? Une liste de toutes les adresse qui existe.
« Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »
Salut
C'est un peu le principe des aspirateur de site, il te faut a partir d'une page, faire la liste de toute les pages qui peuvent être appelé, puis appeler une a une toutes ces pages et regarder a quelles autres pages elle font elles même référence et .... bon je vais m'arrêter la, mais toi tu dois continuer .... jusqu'au final ou tu tomberas, soit sur une page qui ne fait référence a aucune autre page ou uniquement a des pages que tu auras deja mémorisé ou uniquement a des lien vers des site extérieur qui ne commence plus par htt:\\www.dev.com\.
Intéresses toi au composant web utilisable sous vba, google devrait te servir.
Si tu rencontres des problèmes précis n'hésite pas a faire appelle a nous
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Merci qwazerty,
Mon premier problème: je ne sais pas du tout commencer!!
Salut
"vba excel lire le contenue d'une page web wininet", je peux pas te mettre de lien il sera effacé, mais c'est le 2eme site proposé par google
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Bonjour,
Il permet seulement de télécharger une page connue et non pas n'importe laquelle.
J' ai bien essayé de modifier avec like* mais je crois qu'on ne peut pas de cette façon.
Salut
Heu la je comprend plus, tu vas pas partir du néant ?? tu as bien une pages de départ, si ça n'est pas le cas, relis les messages plus haut qui proposé de demander a google l'accès a leur base de données.
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
salut,
Je veux simplement une liste des pages commencant par exemple par "http://www.developpez.net/forums/d751525/logiciels/microsoft-office/excel/vba-excel/recuperer-adresses-commencant-meme-chaine/", quelque soit ce qu'il y a après.
C'est donc impossible??
Merci quand même
nicht
Salut
Écoutes relit le 1er post, ou je t'explique une méthode pour y arriver.
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
salut,
J'ai déjà un début:
c'est de ca que tu voulais parler non?
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
16
17
18
19 Dim htmlpage As HTMLDocument Dim ie As New InternetExplorer Dim mapage As HTMLLinkElement Dim winshell As New ShellWindows Sub s() For Each ie In winshell If ie.LocationURL <> "" Then Set htmlpage = ie.document For Each mapage In htmlpage.links UserForm1.ListBox1.AddItem (mapage.toString) Next End If Next End Sub
Je pense qu'il faut ensuiter ouvrir chacune de ces pages et regarder encore les liens qu'elles contiennent et ainsi de suite, seulement si cxeux de la liste commencent par la chaine recherchée ;
Nicht
je suis loin d'être doué dans la manipulation de internet explorer par macro mais essaye de tester le début de ton lien voir si ca corespond a ce que tu cherche et de le mettre dans ta list seulement si cela colle
Ps : je suis partie du principe que ton code été bon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For Each mapage In htmlpage.links if left(mapage.toString,X)="htt://tondébutdechaine" then 'remplace X par le nombre de caractère qui constitue le début de ta chaine UserForm1.ListBox1.AddItem (mapage.toString) end if Next
« Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »
Salut
Je ne connais pas du tout les manip avec ie, donc a toi de voir si les adresses que te retourne ton code te corresponde, comme l'a dis Krovax, je rajouterais juste qu'il te faut faire une fonction récursive (si tu ne vois pas ce que c'est, je suis sur que google t'apportera réponse) en gros tu fait appelles a une fonction qui dans le code de cette fonction se fait appelle a elle même. Donc en gros
J'ai simplifié, c'est du littéral il te faudra gérer des tableau (ListeDeLien et ListeDeLienRetour), ce qui veut dire qu'il faudra dimensionner tes tableaux, je te conseil de lire des Tutos sur la gestion des Tableau et sur le retour d'un tableau par une function, il me semble que tu trouveras ton bonheur sur developpez.com.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Function RechercheSousLien(LienDeDepart as string, Critere As string) [...] 'Tu crées la liste des lien contenu dans ta page de départ (LienDeDepart) ListeDeLienRetour = ListeDeLien 'il faudra gérer un tableau, l'égalité ne se fera pas comme ça for each TheLien In ListeDeLien ListeDeLienRetour = ListeDeLien + RechercheSousLien(TheLien,Critere) Next RechercheSousLien = ListeDeLienRetour
Bon courage dans ton entreprise.
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Je pense que je vais contredire Qwaz (que je salut bien bas) pour la fonction récursive, cela va dépendre du nombre possible de lien. Car on risque de l'appeler un très grand nombre de fois et donc da saturer la mémoire. Et comme se plaisais a le dire mon prof d'algo "toutes fonction récursive peut être remplacé par de jolie boucle for" (enfin la fin c'est pas tout a fait ca)
Mais bon si le nombre de lien est limité y aura pas de problème avec le récursif
« Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »
Salut Krovax,
J'avoue ne pas me rendre bien compte de la gourmandise d'une telle boucle, certes je le conçoit , puisque pour l'appréhender il suffit de s'imaginer piégé entre 2 miroirs, mais au niveau de ma reserve de memoire je ne sais pas, il faudrait tester, Nicht nous dira ca .
Par contre pour le remplacement par des boucles, je ne sais pas trop, comment ne pas se limiter dans la recherche en profondeur?
Page de depart, on boucle sur les differents liens contenus, mais apres? mettre la boucle dans une boucle Do Loop? mais alors est ce que ca ne revient pas au meme que la recursivité? Sans doute pas l'utilisation d'un boucle est surement moins gourmande que l'utilisation d'une fonction complete.
A suivre ^^
A++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
C'est par pour rien que mon prof me le disait si souvent je pense très facilement au récursif moi aussi. Et dans ce genre de cas j'ai tendance a mettre un goto foireux quelque part. Je vais donc laisser quelqu'un d'autre répondre a cette question , parce que moi je seche.
A si une idée on boucle sur tous les lien de la première page et on stock la valeur dans la liste, puis on ouvre le deuxième lien et on récupère les lien contenue dans page. puis on ouvre le 3 ème lien de la liste,.....
« Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »
Salut à vous deux,
1) N'allez pas trop vite, pour l'instant je travaille sur du code pour empêcher, comme vous me l'avez conseillé, que deux liens s'inscrivent deux fois dans la liste: j'ai ça:
2) Pour la suite j' avais pensé à ça...
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
16
17
18
19 For Each ie In winshell If ie.LocationURL <> "" Then Set htmlpage = ie.document Set htmlpage = ie.document For Each mapage In htmlpage.links If Left(mapage.toString, 28) = "http://machaine/" Then 'For i = 0 To UserForm1.ListBox1.ListCount - 1 'ceci ne marche pas 'If Not mapage.toString = UserForm1.ListBox1.List(i) Then UserForm1.ListBox1.AddItem (mapage.toString) 'Else 'End If 'End If 'Next 'Next End If Next End If Next
... mais ça me fait une erreur (ce qui n'est peut être pas étonnant si j'ai de adresses identiques à la suite dans ma liste ("en cours d'utilisation")).
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
16
17
18 Sub t() For i = 0 To UserForm1.ListBox1.ListCount - 1 ie.navigate (UserForm1.ListBox1.List(i)) If ie.LocationURL <> "" Then Set htmlpage = ie.document 'remplace X par le nombre de caractère qui constitue le début de ta chaine Set htmlpage = ie.document For Each mapage In htmlpage.links If Left(mapage.toString, 28) = "http://machaine/" Then UserForm1.ListBox1.AddItem (mapage.toString) End If Next End If Next End Sub
Vous, vous êtes des experts, moi pas et tout ce que vous dites là me paraît un peu compliqué, mais bon, j'essaierai quand même
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager