Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Supprimer un doublon en fonction d'une date et d'un numéro

Zifox

XLDnaute Nouveau
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


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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…