Extraire une liste (suite)

Fermé
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 - 12 janv. 2020 à 10:59
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 - 27 sept. 2020 à 11:35
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.

Configuration: Windows / Firefox 72.0
A voir également:

6 réponses

M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 284
12 janv. 2020 à 11:16
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"
0
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 1
12 janv. 2020 à 12:16
en effet, je n'avais fait attention, désolé voici le fichier en question:
https://mon-partage.fr/f/qqpOYA4F/
0
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 1
Modifié le 6 sept. 2020 à 20:54
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:
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
0
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 1
8 sept. 2020 à 14:43
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"

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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 1
9 sept. 2020 à 10:06
petit complément: si j'affiche la variable DerLigV, elle me donne 1732 (comme si la macro ne "voyait" pas la suite)
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554
26 sept. 2020 à 22:06
bonjour, tu ne nous dis pas si la colonne A contient quelque chose après la ligne 1732 dans le feuille svVert.
penses-tu vraiment que nous puissions t'aider avec les infos que tu partages?
0
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 1 > yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024
27 sept. 2020 à 09:59
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
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554 > Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024
27 sept. 2020 à 11:13
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
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?
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554 > Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024
Modifié le 27 sept. 2020 à 11:37
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.
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554 > Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024
Modifié le 27 sept. 2020 à 11:31
il n'est pas nécessaire de partager le fichier avec toutes les données, tu peux partager un fichier de test qui nous permette de reproduire ton soucis.

EDIT: et, bien sûr, en expliquant comment le reproduire.
0
Guy_L Messages postés 176 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 20 septembre 2024 1
13 sept. 2020 à 18:03
Bonjour,
Personne n'a d'idée à me proposer ?
Merci
0