Extraire une liste (suite)
Guy_L
Messages postés
176
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je reprends un sujet que j'avais déposé il y a quelques temps ici: https://forums.commentcamarche.net/forum/affich-35807669-extraire-une-liste-a-partir-d-un-copier-coller-de-site?page=2#p35818288
Il faudrait que je rajoute deux choses
1) si la deuxième ligne (qui devrait en principe contenir un prix en €) ne contient pas ce signe € (cela revient à dire qu'il n'est pas indiqué), alors insérer une ligne à la place
2) si le mot "Historique" est présent dans les lignes de la colonne A, le supprimer partout
Merci de m'aider à la rédaction du script pour ces deux conditions, je saurai comment les ajouter au script existant.
Je reprends un sujet que j'avais déposé il y a quelques temps ici: https://forums.commentcamarche.net/forum/affich-35807669-extraire-une-liste-a-partir-d-un-copier-coller-de-site?page=2#p35818288
Il faudrait que je rajoute deux choses
1) si la deuxième ligne (qui devrait en principe contenir un prix en €) ne contient pas ce signe € (cela revient à dire qu'il n'est pas indiqué), alors insérer une ligne à la place
2) si le mot "Historique" est présent dans les lignes de la colonne A, le supprimer partout
Merci de m'aider à la rédaction du script pour ces deux conditions, je saurai comment les ajouter au script existant.
Configuration: Windows / Firefox 72.0
A voir également:
- Extraire une liste (suite)
- Liste déroulante excel - Guide
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
6 réponses
Bonjour,
Comme le lien de partage du fichier n'est plus disponible sur l'ancien post,
Je ne vois pas comment y mettre un "oeil"
Comme le lien de partage du fichier n'est plus disponible sur l'ancien post,
Je ne vois pas comment y mettre un "oeil"
en effet, je n'avais fait attention, désolé voici le fichier en question:
https://mon-partage.fr/f/qqpOYA4F/
https://mon-partage.fr/f/qqpOYA4F/
Bonjour,
Je reviens sur ce fichier car il me pose des problèmes.
Il s'agit, comme je l'avais expliqué dans le topic initial, d'un "copier-coller" depuis un célèbre site de petites annonces (je ne sais pas si on a le droit de le citer ici).
Quand on fait un copier-coller, la liste des annonces se présente sous une forme classée verticalement dans la colonne A du fichier Excel.
Or, tout ce qui est collé ne m'intéresse pas forcément et, surtout, le format de chaque annonce, même s'il est globalement le même et occupe autant de ligne pour chacune d'entre elles, peut avoir des "variantes" parasites.
Par exemple, si aucun prix n'est indiqué, la ligne sera évidemment "sautée" lors du collage, ce qui provoque un décalage de lignes.
Autre "parasite" constaté: le prix (toujours lui) est "collé" parfois sous la forme monétaire (en €) parfois en simple nombre. Ce qui, dans le traitement macro de mon fichier pose problème.
Car je l'analyse ainsi:
Pour l'instant, c'est la ligne qui me pose problème. Il faudrait (peut-être) que je traite cette ligne pour détecter un "nombre" et non pas le signe €, de cette façon, que ce soit monétaire ou non, la macro ajoutera une ligne si ce n'est pas un nombre.
Je peux vous soumettre un fichier, mais comme il y a des données personnelles et professionnelles, je devrais limiter ses infos au copier-coller partiel (sans la partie macros). Est-ce que c'est bien utile ?
Merci d'avance pour votre aide
Je reviens sur ce fichier car il me pose des problèmes.
Il s'agit, comme je l'avais expliqué dans le topic initial, d'un "copier-coller" depuis un célèbre site de petites annonces (je ne sais pas si on a le droit de le citer ici).
Quand on fait un copier-coller, la liste des annonces se présente sous une forme classée verticalement dans la colonne A du fichier Excel.
Or, tout ce qui est collé ne m'intéresse pas forcément et, surtout, le format de chaque annonce, même s'il est globalement le même et occupe autant de ligne pour chacune d'entre elles, peut avoir des "variantes" parasites.
Par exemple, si aucun prix n'est indiqué, la ligne sera évidemment "sautée" lors du collage, ce qui provoque un décalage de lignes.
Autre "parasite" constaté: le prix (toujours lui) est "collé" parfois sous la forme monétaire (en €) parfois en simple nombre. Ce qui, dans le traitement macro de mon fichier pose problème.
Car je l'analyse ainsi:
If InStr(ShVert.Cells(LigV + 1, "A").Text, "€") = 0 Then ShVert.Rows(LigV + 1).Insert Shift:=xlDown
'rajoute un saut de ligne si la ligne après l'intitulé n'est pas un prix
Pour l'instant, c'est la ligne qui me pose problème. Il faudrait (peut-être) que je traite cette ligne pour détecter un "nombre" et non pas le signe €, de cette façon, que ce soit monétaire ou non, la macro ajoutera une ligne si ce n'est pas un nombre.
Je peux vous soumettre un fichier, mais comme il y a des données personnelles et professionnelles, je devrais limiter ses infos au copier-coller partiel (sans la partie macros). Est-ce que c'est bien utile ?
Merci d'avance pour votre aide
Bonjour,
j'ai avancé un peu, mais suis bloqué par deux autres problèmes:
Voici d'abord comment j'ai résolu la "détection de l'absence de prix"
(au lieu de rechercher le signe € qui n'était pas "vu" de VBA)
1) il subsiste des cellules contenant les mots "x jours restants" avec x qui varie.
Je suis arrivé à vider les lignes contenant un libellé invariable comme ceci:
Mais comment faire s'il y a un nombre qui varie ?
2) la macro balaye toute la colonne comme ceci:
saut qu'elle s'arrête à la ligne 1732 sans aucune raison, car rien de diffère à cet endroit là par rapport au reste.
Je ne comprends pas ...
merci pour votre aide
j'ai avancé un peu, mais suis bloqué par deux autres problèmes:
Voici d'abord comment j'ai résolu la "détection de l'absence de prix"
If IsNumeric(ShVert.Cells(LigV + 1, "A")) = False Then ShVert.Rows(LigV + 1).Insert Shift:=xlDown
'rajoute un saut de ligne si la ligne après l'intitulé n'est pas un nombre
(au lieu de rechercher le signe € qui n'était pas "vu" de VBA)
1) il subsiste des cellules contenant les mots "x jours restants" avec x qui varie.
Je suis arrivé à vider les lignes contenant un libellé invariable comme ceci:
'remplacement du mot "moins d’un jour restant" par [vide]
Selection.Replace What:="moins d’un jour restant", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Mais comment faire s'il y a un nombre qui varie ?
2) la macro balaye toute la colonne comme ceci:
LigV = 1
DerLigV = ShVert.[A100000].End(xlUp).Row
For i = 1 To DerLigV
saut qu'elle s'arrête à la ligne 1732 sans aucune raison, car rien de diffère à cet endroit là par rapport au reste.
Je ne comprends pas ...
merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
petit complément: si j'affiche la variable DerLigV, elle me donne 1732 (comme si la macro ne "voyait" pas la suite)
j'ai dit:
"petit complément: si j'affiche la variable DerLigV, elle me donne 1732 (comme si la macro ne "voyait" pas la suite) "
en fait je pense que la réponse à votre question se trouve dans cette phrase puisque j'y évoque une suite, c'est donc bien qu'il y a des données après la ligne 1732.
Mais je pense avoir trouvé le "pourquoi":
Avant de balayer les lignes je fixe cette variable DerLigV en scrutant la colonne A. Elle subit ensuite des modifications en hauteur (rajout/suppressions de lignes) ce qui modifie la valeur du nombre de ligne, mais pas la valeur de DerLigV. Donc la macro s'arrête là où DerLigV lui dit de s'arrêter, pas là où il y a la nouvelle fin de liste.
Evidemment, si je pouvais fournir le fichier dans son entier, ce serait plus simple, mais il contient des données confidentielles (professionnelles) et les masquer prendrait un temps considérable. je ne peux qu'en faire un extrait et le joindre ici
https://mon-partage.fr/f/c3Z9r0is/
Il s'agit du fichier "brut de fonderie", avant les modifs proposées par les membres de CCM
A noter que les images ont déjà été supprimées, même si la macro est sensée le faire
Merci
"petit complément: si j'affiche la variable DerLigV, elle me donne 1732 (comme si la macro ne "voyait" pas la suite) "
en fait je pense que la réponse à votre question se trouve dans cette phrase puisque j'y évoque une suite, c'est donc bien qu'il y a des données après la ligne 1732.
Mais je pense avoir trouvé le "pourquoi":
Avant de balayer les lignes je fixe cette variable DerLigV en scrutant la colonne A. Elle subit ensuite des modifications en hauteur (rajout/suppressions de lignes) ce qui modifie la valeur du nombre de ligne, mais pas la valeur de DerLigV. Donc la macro s'arrête là où DerLigV lui dit de s'arrêter, pas là où il y a la nouvelle fin de liste.
Evidemment, si je pouvais fournir le fichier dans son entier, ce serait plus simple, mais il contient des données confidentielles (professionnelles) et les masquer prendrait un temps considérable. je ne peux qu'en faire un extrait et le joindre ici
https://mon-partage.fr/f/c3Z9r0is/
Il s'agit du fichier "brut de fonderie", avant les modifs proposées par les membres de CCM
A noter que les images ont déjà été supprimées, même si la macro est sensée le faire
Merci
merci de spécifier "basic" quand tu utilises les balises de code pour partager du VBA.
on est donc d'accord: au moment d'exécuter l'instruction
il n'y a pas de données après la ligne 1732.
et donc la macro a bien raison de s'y arrêter.
as-tu d'autres questions?
on est donc d'accord: au moment d'exécuter l'instruction
DerLigV = ShVert.[A100000].End(xlUp).Row
il n'y a pas de données après la ligne 1732.
et donc la macro a bien raison de s'y arrêter.
as-tu d'autres questions?
quand je lis "comme si la macro ne "voyait" pas la suite", j'interprete immédiatement que c'est toi qui croit voir une suite qui n'existe pas. la macro ayant toujours raison.
le but de ma question était, d'une part, de t'encourager à réfléchir, d'autre part, à essayer que tu nous donnes quelques informations utiles.
ta première réponse à ma question "la réponse à votre question se trouve dans cette phrase" prouve bien que tu étais enfermé dans un raisonnement incorrect. ensuite, ma question t'a permis de sortir de cet enfermement.
le but de ma question était, d'une part, de t'encourager à réfléchir, d'autre part, à essayer que tu nous donnes quelques informations utiles.
ta première réponse à ma question "la réponse à votre question se trouve dans cette phrase" prouve bien que tu étais enfermé dans un raisonnement incorrect. ensuite, ma question t'a permis de sortir de cet enfermement.