je viens de regarder en coup de vent l'exemplaire que tu avais posté avec l'instance de IE
j'ai refermé pratiquement tout de suite le fichier c'est quoi ce truc de ouf!
pourquoi faire simple quand on peut faire compliqué hein!
je viens de regarder en coup de vent l'exemplaire que tu avais posté avec l'instance de IE
j'ai refermé pratiquement tout de suite le fichier c'est quoi ce truc de ouf!
pourquoi faire simple quand on peut faire compliqué hein!
écoute , je fais avec mes petites connaissances
par contre il y a une chose que tu ne récupères pas avec ta macro , c'est l'adresse de la salle ( sur le site web, il se trouve au niveau du point i a droite des matchs).
re
voici une capture d'ecran de l'arborecence de la journée1 date1
je ne vois pas ou elle est ton adresse du match
Pièce jointe 143038
si je regarde directement dans le code source de la page je trouve bien le tool tips qui me donne l'adresse
je refait ca en traitant directement dans le code source
RE
voila une version 1.3 avec adresse pour les -12F
il n'y a pas 20 lignes de codes
je ne sais pas ou tu trouve les heures de rendez vous alors je ne m'en suis pas occupé ainsi que le lavage maillot ect...
click sur le bouton rouge de la feuille "-12f"
et hop moins de 2 secondes
j'ai aussi ajouter l'adresse de la salle dans le système avec l'object htmldocument
version 1.4
tu a maintenant les deux façon en string sur le code source et avec la Library html(object htmldocument)
il te reste plus qu'a faire pareil pour toutes les categories
et hop voila la new version 1.5
tu a tes 4 sheets catégorie
tu peut télécharger la mise a jour individuellement en cliquant sur le bouton rouge dans chaque sheets
ou télécharger globalement la mise ajour pour tout les catégories en cliquant sur le bouton violet dans le sheets ACCEUIL
et voila la version 1.5
tu m'en diras des nouvelles
moins de 6 seconde pour la mise a jour globale
cé bo la vie non?
merci , tout bonnement génial ...
par contre j'essaie de comprendre ta macro et la j'ai quelques problèmes
autant les 1eres je voyais que tu allais prendre les div, class ... et tu les copiais dans une table
autant le je en vois pas comment et ou tu récupère les données ( j'ai vu en A2 de chaque feuille, il y a le lien www... mais apres ???? désolé je dois être un peu idiot
pour le reste je comprends le principe, par contre je risque de devoir rajouter des feuilles qui ne seront pas des tableaux , comment puis je faire pour ne pas que la macro s'exécute pas sur ces feuille en question ?pour ca c'est bon , il faut modifié le sheets.count de la feuille ACCEUIL
pour les heure de rendez vous , j'ai une formule qui donne en c6 =D6-(INDEX(tps!B:B;EQUIV(E6;tps!A:A)))-tps!$B$2 ( littéralement RDV = heure match - heure trajet - tps avant match )
donc si j'ai bien compris ta table il faudrait quelques chose dans le genre
TABLO(i-1 , 2) = "D6-(INDEX(tps!B:B;EQUIV(E6;tps!A:A)))-tps!$B$2"
comment peux on rentrer ça , pour que cela fonctionne?
en m'inspirant de ce que tu as fait , j'ai essayé de rajouter 1 catégorie de plus
j'ai dupliqué une feuille , en A2 j'ai mis l'adresse de la catégorie
par ex pour les -16m :
http://www.ff-handball.org/competiti...52d456e6307dda
mais il me met un message : l'indice n’appartient pas a la sélection et pointe vers la ligne :
TABLO(i - 1, 4) = Split(Split(tablo2(A), "</strong></strong>")(1), "</p>")(0) '--- equipe domicile---
je te remets le fichier modifié
je ne vois pas pourquoi ?
Bonjour
tout d abords réponse a tes questions
alors pour la boucle sur tout les sheets pour la mise a jours globale
j'ai modifié la macro du bouton dans le sheets accueil comme ceci
comme tu peut le voir je boucle maintenant sur un array comportant les noms de sheets et plus les sheets eux même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub CommandButton1_Click() TOUTEPAGEBLANCHE shname = Array("-12f", "-12g_2", "-12g_1", "-14g") For i = LBound(shname) To UBound(shname) telechargementS2 Sheets(shname(i)), Sheets(shname(i)).Range("A2") Next MsgBox "mise a jour terminé!!" End Sub
ensuite tu m'a demander comment je récupérer les éléments
et bien c'est tout simple
la fonction getcodesource (fonction que j'ai créé il y a quelque temps déjà ) tu la trouvera a plusieurs endroits dans les contributions
te récupère le code source de la page
ensuite a l'aide d'une variable tableau(en fait une table en mémoire )et de la fonction split je coupe le texte du code source et je garde les morceaux que je veux tout simplement et je les place dans le tablo
ensuite avec range(x:y).resize (dimension du tableau)=tablo
cette méthode permet de remplir la grille en une seule fois (gains de temps )
je regarde ta version 1.51
a tout a l'heure
voila voila la version 1.5.2
nouveauté:
1° Ajout de la catégorie -16m
2° modification sur l'erreur du split par les strong ---> par les"- "donc suppression de la fonction replace (plus nécessaire )
3° retour de la boucle sur sheets.count-2 sur le bouton du sheets accueil
cé bo la vie non?
a oui la c'est beau la vie vu comme ca .
je viens d'essayer de rajouter une catégorie (-18) , nickel cela fonctionne.
par contre pas avec les séniors ( le championnat ne fonctionnant pas tout a fait pareil possible qu'il faillent adapter un peu ) ca j'essaierai de m'en débrouilleren faite c'était juste que je n'avais pas fait attention ma feuille "senior m" ce trouvait apres la feuille acceuil .. du coup bug
si j'ai bien compris , tu utilises donc getcodesource pour récupérer le code complet de la page que tu veux , et ensuite tu la met dans une table.
mais ... (il y a toujours un mais lol) comment sais tu ce qu'il y a dans ta table(ou est tel ou tel élément)?
je te remercie en tout cas du temps et de la patience que tu me consacres, car pour moi venir sur un forum, ce n'est pas juste demandé a qq1 de faire qqchose que je ne comprends pas, mais surtout de l'assimilé pour pouvoir essayer de me débrouiller par moi même la prochaine fois.
il y a juste une dernière petite chose que je voudrais voir avec toi , c'est au niveau de l'heure de rendez-vous
pour les heure de rendez vous , j'ai une formule qui donne en c6 =D6-(INDEX(tps!B:B;EQUIV(E6;tps!A:A)))-tps!$B$2 ( littéralement RDV = heure match - tps trajet - tps avant match )
donc si j'ai bien compris ta table il faudrait quelques chose dans le genre
TABLO(i-1 , 2) = "D6-(INDEX(tps!B:B;EQUIV(E6;tps!A:A)))-tps!$B$2
et hop voila encore une new version avec heure de rendez vous sans tes formules
activation de la référence Microsoft Scripting runtime nécessaire
en effet j'utilise un dictionnaire pour le controls des nom pour trouver l'heure de transport
donné que je soustrait a l'heure du math directement en vba dans le tablo
non vraiment elle est belle la vie
j'ai pas le lien de la catégorie 18m je l'ai donc pas fait mais si tu me donne le lien je te le fait
on passera a l'explication après avoir finaliser le fichier
bonjour
merci pour cette nouvelle version
un petit soucis au niveau des heures de rendez vous , il faut aussi soustraire le temps d'avant match. 01:00:00 ( cellule b2 feuille tps); mais sinon cela fonctionne tres bien.
le coup du DICO c'est pas mal du tout , il faut que je pense a m'en servir
j'ai rajouté l'onglet -18m , la mise a jour fonctionne aussi , que du bonheur
par contre il y a une ligne vide a la fin de chaque adresse , y a t'il possibilité de l'enlevé? cela serai plus simple pour la mise en page.
voila sinon , je pense que j'ai fait le tour
voici le fichier modifié
Pièce jointe 143236
j'ai essayé de faire une macro pour créer de nouvelles catégories automatiquement ( je ne vais pas être le seul a avoir accès a ce fichier , et je n'ai pas très envie que tout le monde farfouille dans le code)
elle s'appelle crea_cat
par contre cela ne fonctionne pas, erreur l'indice n'appartient pas ...
voici le lien de la page des -18m apr exemple :
http://www.ff-handball.org/competiti...9f63599d569b37
modif : j'ai aussi intégré a la macro "crea_cat" les mises en forme conditionnelle ( le code vient de l'enregistreur de macro ... peut etre pas le plus simple ....)
Pièce jointe 143267
Bonjour
nouvelle version 1.5.9
1° ajout de catégorie réglée
en fait tu t'ennuie la vie pour rien
puisque tu a déjà des sheets déjà fait autant copier un d'entre eux vider la grille mettre le nouveau lien en A2
comme ca tu a déjà la mise en forme des cells
2° l'heure du rendez-vous est réglée j'ai ajouter 1 heure a la soustraction
3° la ligne supplémentaire dans les adresse a été supprimée
une petite remarque
quand tu ajoute une catégorie il faut déjà avoir copier l'adresse du lien donc pas très pratique mais moi ce j'en dis
allez tiens prend ce fichier
ok nickel pour tes modifications.
j'ai changé mon système de création de catégories , car il y avait un petit soucis : il doit y avoir un nombre max de caractères dans une inputbox et avec mes adresses a rallonge, il en coupait la moitié.
du coup tout fonctionne impeccable je te remercie beaucoup
voila le fichier définitif ( ou quasi définitif ) :
Pièce jointe 143311
allez encore une
correction de la macro toutepageblanche
correction de la macro création
et plein de petit détail
bon bah la on est arrivé au bout
ca aura fait quelques versions quand même
maintenant qu'on est tout bon , peux tu m'expliquer comment tu fais pour savoir ou sont dans ta table les valeurs que tu veux , c'est un point qui reste assez abstrait pour moi...
bon alors j'explique
comme je te l'ai dis antérieurement il y avit 2 possibilité d'extraction
soit en utilisant la librairie IE (div,children etc...)
soit celle que l'on a garder jusqu'ici en string (format texte)
alors la fonction getcodesource récupère le code source en entier de la page
avec la fonction native vba (split) on coupe le texte
exemple
comme tu peux le voir ca n'est pas très compliqué surtout que tes pages html sont assez identiques dans leur structure ce qui a fait que j'utilise la même macro pour toutes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 texte ="patrick-toulon-DVP" élément=split(texte,"-") 'maintenant si on veut 1 élément ou un autre on fera comme ceci: 'on affiche un message avec l'élément prénom=élément(0) '0 étant le premier élément du texte coupe ville=élément(1) '1 étant donc le 2 Emme élément nomforum=élément(2) '2 étant donc le 3 Emme élément msgbox prénom
Fort de tes explications qui m'ont permis de mieux comprendre le principe , je me suis lancé sur un nouveau projet :
récupérer la liste de tous les matchs de mon club par journée ... et la je me heurte a un soucis
voici l'adresse web en question :
http://www.ff-handball.org/liens-per...une-salle.html
le soucis c'est que l'adresse ne change pas en fonction de ce que tu choisis et du coup le code source récupéré ne contient pas le code de la fenêtre ( voir image ci dessous)
Pièce jointe 143396
du coup la question est comment récupérer le code source de cet élément ?
ps : pour pouvoir avoir l'élément il faut sélectionner :
-localisation : ligue 18 - pays de loire
-structure : cocher club
il va te dire il y a 190 clubs disponibles
aller en page 2 et selectionner : AL PORTERIE AC HANDBALL - 3 rue xavier avril 44300 NANTES
hé hé !!!!!
pas si résolu que ca alors hein
je regarde ca dans l'après midi je me suis lancer dans un autre projet pour un autre forumeur mais je reste a dispos t'inquiet
oui c'est vrai , disons que ce n'est plus vraiment le même projet pour ça que je l'avais marqué comme résolu.
pas de soucis
je suis aller sur ton lien j'ai chosi si 18
j'ai cocher CLUB
et dans les onglet du div j'ai choisi résultat calendrier. c'est de ca que tu parle???
dans ce cas la encore rien de bien complique
tu n'a cas faire l'expérience
ouvre cette page sélectionne résultat /calendrier
une fois que tu commence avoir une partie de ce div tape F12
ensuite dans la fenêtre clique sur la petite flèche en haut a gauche une fois qu'elle est noirci tu sélection le premier élément dans la page html
et tu vois de quel div il sagi quel est son parent et ses enfant et sous enfant
je m'en occupe
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