Comment éviter les doublons de fichiers au format date
Résolu/Fermé
A voir également:
- Comment éviter les doublons de fichiers au format date
- Format epub - Guide
- Format dat - Guide
- Supprimer les doublons excel - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
6 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
12 déc. 2015 à 16:11
12 déc. 2015 à 16:11
Pour détecter un fichier ayant le même nom dans un répertoire:
Ceci te donne le chemin complet du fichier ayant le même nom, remplacer MsgBox par un variable et après tu adaptes pour supprimer le 1er fichier dont tu connais le chemin complet (regarder sur Google: supprimer un fichier) et enregistrer le nouveau
MsgBox chemin & Dir(chemin & "\\" & nom & "*")
Ceci te donne le chemin complet du fichier ayant le même nom, remplacer MsgBox par un variable et après tu adaptes pour supprimer le 1er fichier dont tu connais le chemin complet (regarder sur Google: supprimer un fichier) et enregistrer le nouveau
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
13 déc. 2015 à 11:24
13 déc. 2015 à 11:24
Sub Save_classeur() Dim chemin, nom, val As String 'le chemin pour ouvrir le bon répertoire en allant chercher le numéro du répertoire se trouvant dans la cellule N8 du fichier à enregistrer chemin = "C:\Documents and Settings\toto\Mes documents\dossier import test\" & Range("N8").Value & "\" 'le nom du fichier sera enregistré sous le nom indiqué dans la cellule N11 (n° de série) nom = Range("N11").Value ‘Lancement de l’enregistrement au format Xlsm 'ActiveWorkbook.SaveAs Filename:=chemin & nom & Format(Now(), "_dd_mm_yyyy") & ".xlsm", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False val = chemin & Dir(chemin & "\\" & nom & "*") If val = "" Then Exit Sub Else Kill val End Sub
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
13 déc. 2015 à 11:27
13 déc. 2015 à 11:27
correction:
Sub Save_classeur() Dim chemin, nom, val As String 'le chemin pour ouvrir le bon répertoire en allant chercher le numéro du répertoire se trouvant dans la cellule N8 du fichier à enregistrer chemin = "C:\Documents and Settings\toto\Mes documents\dossier import test\" & Range("N8").Value & "\" 'le nom du fichier sera enregistré sous le nom indiqué dans la cellule N11 (n° de série) nom = Range("N11").Value 'supprimer fichier si existant val = chemin & Dir(chemin & "\\" & nom & "*") If val = "" Then Exit Sub Else Kill val ‘Lancement de l’enregistrement au format Xlsm 'ActiveWorkbook.SaveAs Filename:=chemin & nom & Format(Now(), "_dd_mm_yyyy") & ".xlsm", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False End Sub
Le fichier est bien effacé si le numéro de série et la date sont les mêmes mais si la date est différente, il n’écrase pas l’ancien fichier.
Exemple si le même fichier est enregistré une seconde fois 3 jours plus tard :
555555_10_12_2015 ancien fichier
555555_13_12_2015 le nouveau est fichier créé et l’ancien reste
Exemple si le même fichier est enregistré une seconde fois 3 jours plus tard :
555555_10_12_2015 ancien fichier
555555_13_12_2015 le nouveau est fichier créé et l’ancien reste
Pour être plus clair, j'ai lancer le programme indiqué mais lorsqu'il ne trouve pas le même numéro de série, la procédure s’arrête sur "Kill val"et le MsgBox suivant apparaît: "Fichier introuvable";
j'ai donc modifié la procédure de la façon suivante mais mon problème de doublon réapparaît si le fichier existe déjà ce qui est normal car je reviens à mon point de départ, ça fonctionne dans un sens mais pas dans l'autre.
val = chemin & dir(chemin & "\\" & nom & "*")
If val = "" Then
Exit Sub
Else
'Kil val
ActiveWorkbook.SaveAs Filename:=chemin & nom & Format(Now(), "_dd_mm_yyyy") & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End If
End Sub
j'ai donc modifié la procédure de la façon suivante mais mon problème de doublon réapparaît si le fichier existe déjà ce qui est normal car je reviens à mon point de départ, ça fonctionne dans un sens mais pas dans l'autre.
val = chemin & dir(chemin & "\\" & nom & "*")
If val = "" Then
Exit Sub
Else
'Kil val
ActiveWorkbook.SaveAs Filename:=chemin & nom & Format(Now(), "_dd_mm_yyyy") & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
14 déc. 2015 à 07:52
14 déc. 2015 à 07:52
Il y a un problème avec Kill, voici une autre approche:
Sub Save_classeur() Dim chemin, nom, val As String Dim objFSO As Variant 'le chemin pour ouvrir le bon répertoire en allant chercher le numéro du répertoire se trouvant dans la cellule N8 du fichier à enregistrer chemin = "C:\Documents and Settings\toto\Mes documents\dossier import test\" & Range("N8").Value & "\" 'le nom du fichier sera enregistré sous le nom indiqué dans la cellule N11 (n° de série) nom = Range("N11").Value On Error Resume Next 'si pas de fichier existant 'supprimer fichier si existant val = chemin & Dir(chemin & "\\" & nom & "*") 'on va supprimer le fichier Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile (val) 'Lancement de l’enregistrement au format xls ActiveWorkbook.SaveAs Filename:=chemin & nom & Format(Now(), "_dd_mm_yyyy") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False MsgBox "Enregister" End Sub
13 déc. 2015 à 10:56