Bonjour, à tous ,
Je réalise actuellement un programme pour ajouter des noms de fichier dans un tableau excel : le nom est du type "40711102 -PELLE CATERPILLAR 313D- 29 06 22 - AO.pdf". Je veux éviter de rajouter une ligne dans mon tableau si le numéro est le même c'est à dire si dans mes fichiers deux d'entre eux commencent par 40711102 je veux que le fichier avec la date la plus récente (ici la date est 29 06 22 ) soit ajouté dans mon tableau à la place de l'autre. Voir mon code ci-dessous:
Si je met Sheets("ENGIN_SNCTP").Range("P" & Lastline).Value = XPFile cela détecte que les deux noms de fichiers sont les mêmes (colonne P présence du nom du fichier) mais si je mais cela
Sheets("ENGIN_SNCTP").Range("C" & Lastline).Value = Left(XPFile, 8) and Sheets("ENGIN_SNCTP").Range("H" & Lastline) < Format(CDate(Mid(XPFile, Len(XPFile) - 16, 2) & "/" & Mid(XPFile, Len(XPFile) - 13, 2) & "/" & Mid(XPFile, Len(XPFile) - 10, 2)), "dd/mm/yy"), le code ne rentre jamais dans la boucle... Et je ne comprends pas pourquoi...
Si quelqu'un à une idée...
Merci d'avance.
Bonne journée
Je réalise actuellement un programme pour ajouter des noms de fichier dans un tableau excel : le nom est du type "40711102 -PELLE CATERPILLAR 313D- 29 06 22 - AO.pdf". Je veux éviter de rajouter une ligne dans mon tableau si le numéro est le même c'est à dire si dans mes fichiers deux d'entre eux commencent par 40711102 je veux que le fichier avec la date la plus récente (ici la date est 29 06 22 ) soit ajouté dans mon tableau à la place de l'autre. Voir mon code ci-dessous:
Si je met Sheets("ENGIN_SNCTP").Range("P" & Lastline).Value = XPFile cela détecte que les deux noms de fichiers sont les mêmes (colonne P présence du nom du fichier) mais si je mais cela
Sheets("ENGIN_SNCTP").Range("C" & Lastline).Value = Left(XPFile, 8) and Sheets("ENGIN_SNCTP").Range("H" & Lastline) < Format(CDate(Mid(XPFile, Len(XPFile) - 16, 2) & "/" & Mid(XPFile, Len(XPFile) - 13, 2) & "/" & Mid(XPFile, Len(XPFile) - 10, 2)), "dd/mm/yy"), le code ne rentre jamais dans la boucle... Et je ne comprends pas pourquoi...
Si quelqu'un à une idée...
Merci d'avance.
Bonne journée
VB:
xExtArr2 = Array("*.pdf")
For Each xExt2 In xExtArr2
XPFile = Dir(xSPath & xExt2)
Do While XPFile <> ""
Lastline = Range("C" & Rows.Count).End(xlUp).Row '
If Sheets("ENGIN_SNCTP").Range("C" & Lastline).Value = Left(XPFile, 8) and Sheets("ENGIN_SNCTP").Range("H" & Lastline) < Format(CDate(Mid(XPFile, Len(XPFile) - 16, 2) & "/" & Mid(XPFile, Len(XPFile) - 13, 2) & "/" & Mid(XPFile, Len(XPFile) - 10, 2)), "dd/mm/yy")Then
Sheets("ENGIN_SNCTP").Range("P" & Lastline) = XPFile
Sheets("ENGIN_SNCTP").Range("B" & Lastline) = "-"
Sheets("ENGIN_SNCTP").Range("H" & Lastline) = Format(CDate(Mid(XPFile, Len(XPFile) - 16, 2) & "/" & Mid(XPFile, Len(XPFile) - 13, 2) & "/" & Mid(XPFile, Len(XPFile) - 10, 2)), "dd/mm/yy")
Else
If Range("C" & Lastline) <> "" Then Lastline = Lastline + 1
'si la date est à moins de 21 jours du jour actuel une notification est envoyée
Sheets("ENGIN_SNCTP").Range("P" & Lastline) = XPFile
Sheets("ENGIN_SNCTP").Range("C" & Lastline) = Left(XPFile, 8)
Sheets("ENGIN_SNCTP").Range("B" & Lastline) = "-"
Sheets("ENGIN_SNCTP").Range("D" & Lastline) = Mid(XPFile, 11, Len(XPFile) - 29)
Sheets("ENGIN_SNCTP").Range("H" & Lastline) = Format(CDate(Mid(XPFile, Len(XPFile) - 16, 2) & "/" & Mid(XPFile, Len(XPFile) - 13, 2) & "/" & Mid(XPFile, Len(XPFile) - 10, 2)), "dd/mm/yy")
Lastline = Lastline + 1
XPFile = Dir
End If
Loop
Next