Extraire une liste à partir d'un copier-coller de site - Page 2

Résolu
Précédent
  • 1
  • 2
Frenchie83 Messages postés 2254 Statut Membre 339
 
2 erreurs détectées
La première: erreur de saisie de ma part(un + 1 à la place de * 1)
If CDate(Left(ShVert.Cells(LigV + 4, "A"), 10)) * 1 > Date + 1 Then 'Si la date est supérieure à celle d'aujourd'hui

la correction:
If CDate(Left(ShVert.Cells(LigV + 4, "A"), 10)) * 1 > Date * 1 Then 'Si la date est supérieure à celle d'aujourd'hui

La deuxième: dans la liste "Pro", une date était mal écrite: 11/021/2019 au lieu de 11/12/2019

https://mon-partage.fr/f/PmyE3nry/

Essayez à nouveau
0
Guy_L Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   1
 
Hélas, ça butte toujours sur cette deuxième ligne:
If CDate(Left(ShVert.Cells(LigV + 3, "A") * 1, 10)) * 1 > Date * 1 Then 'Si la date est supérieure à celle d'aujourd'hui
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 4, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente

et dans le fichier "réel", il y a encore des dates du type 29/11/2019

Dans le fichier Classeur 3 ci-dessous j'ai mis deux annonces symptomatiques (toutes deux dans "Pro")
https://mon-partage.fr/f/pwZ4XesD/
La première "passe" (date OK 29/11/2018), la seconde non (29/11/2019)
0
Frenchie83 Messages postés 2254 Statut Membre 339
 
Encore une bourde (copier-coller non corrigé)
dans la ligne ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 4, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente

remplacez le 4( en gras) par 3, ce qui donne
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 3, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente

Essayez
0
Guy_L Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   1
 
Je pense que le problème était dans le Else:

Script initial
ShHoriz.Cells(LigH, "A") = Format(ShVert.Cells(LigV + 3, "A"), "mm/dd") 'Date

> avec donc un test sur la ligne + 3 alors qu'avec le prix, elle est décalée en + 4

Script corrigé
ShHoriz.Cells(LigH, "A") = Format(ShVert.Cells(LigV + 4, "A"), "mm/dd/yyyy") 'Date


J'ai aussi corrigé ces lignes
'Contrôle de la date
If CDate(Left(ShVert.Cells(LigV + 4, "A"), 10)) * 1 > Date * 1 Then 'Si la date est supérieure à celle d'aujourd'hui
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 3, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente
Else
ShHoriz.Cells(LigH, "A") = Format(ShVert.Cells(LigV + 4, "A"), "mm/dd/YYYY") 'sinon on conserve la date

en
 'Contrôle de la date
If CDate(Left(ShVert.Cells(LigV + 3, "A"), 10)) * 1 > Date * 1 Then 'Si la date est supérieure à celle d'aujourd'hui
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 3, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente
Else
ShHoriz.Cells(LigH, "A") = Format(ShVert.Cells(LigV + 3, "A"), "mm/dd/YYYY") 'sinon on conserve la date


Pour autant, la macro bute à nouveau sur
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 3, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente


????
0

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

Posez votre question
Frenchie83 Messages postés 2254 Statut Membre 339
 
Je me suis mal fait comprendre, c'était justement la ligne du "Else" (celle en gras)
For i = 1 To DerLigV
ShHoriz.Cells(LigH, "B") = ShVert.Cells(LigV, "A") 'Intitulé
If ShVert.Cells(LigV + 3, "A") = "Date" Then
ShHoriz.Cells(LigH, "C") = ShVert.Cells(LigV + 1, "A") 'Prix
ShHoriz.Cells(LigH, "D") = ShVert.Cells(LigV + 2, "A") 'Catégorie
'Contrôle de la date
If CDate(Left(ShVert.Cells(LigV + 4, "A"), 10)) * 1 > Date + 1 Then 'Si la date est supérieure à celle d'aujourd'hui
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 4, "A")) & "/" & Month(ShVert.Cells(LigV + 4, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente
Else
ShHoriz.Cells(LigH, "A") = Format(ShVert.Cells(LigV + 4, "A"), "mm/dd/YYYY") 'sinon on conserve la date
End If
ShHoriz.Cells(LigH, "E") = ShVert.Cells(LigV + 6, "A") 'Vues
ShHoriz.Cells(LigH, "F") = ShVert.Cells(LigV + 7, "A") 'Tel
ShHoriz.Cells(LigH, "G") = ShVert.Cells(LigV + 8, "A") 'Mails reçus
LigV = LigV + 9
Else
ShHoriz.Cells(LigH, "D") = ShVert.Cells(LigV + 1, "A") 'Catégorie
'Contrôle de la date
If CDate(Left(ShVert.Cells(LigV + 3, "A") * 1, 10)) * 1 > Date * 1 Then 'Si la date est supérieure à celle d'aujourd'hui
ShHoriz.Cells(LigH, "A") = Format(Day(ShVert.Cells(LigV + 3, "A")) & "/" & Month(ShVert.Cells(LigV + 3, "A")) & "/" & Year(Date) - 1, "mm/dd/yyyy") 'on prend l'année précédente
Else
ShHoriz.Cells(LigH, "A") = Format(ShVert.Cells(LigV + 3, "A"), "mm/dd/YYYY") 'sinon on conserve la date
End If
ShHoriz.Cells(LigH, "E") = ShVert.Cells(LigV + 5, "A") 'Vues
ShHoriz.Cells(LigH, "F") = ShVert.Cells(LigV + 6, "A") 'Tel
ShHoriz.Cells(LigH, "G") = ShVert.Cells(LigV + 7, "A") 'Mails reçus
LigV = LigV + 8
End If

https://mon-partage.fr/f/NDPeON2W/

Cdlt
0
Guy_L Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   1
 
En effet, j'avais changé la partie avant le Else, pas celle d'après. Maintenant, tout semble fonctionner à merveille. Comment vous remercier ?
0
Frenchie83 Messages postés 2254 Statut Membre 339
 
Si tout fonctionne correctement, mettre en résolu.

Cdlt
0
Guy_L Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   1
 
OK, non sans un grand merci
0
Précédent
  • 1
  • 2