Recherche d'un fichier XL, nom/path connus
Résolu
cycytoulouse
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaite que ma macro parcourt les fichiers XL d'un dossier spécifique, l'ouvre si elle le trouve, le crée si ce n'est pas le cas.
Pour résumer, j'ai une liste dans ma macro, pour chaque enregistrement de cette liste, un fichier XL correspondant doit etre crée s'il n'est pas existant, ouvert s'il l'est.
C'est sans doute une question de débutant alors je m'en excuse par avance.
Cyril
Je souhaite que ma macro parcourt les fichiers XL d'un dossier spécifique, l'ouvre si elle le trouve, le crée si ce n'est pas le cas.
Pour résumer, j'ai une liste dans ma macro, pour chaque enregistrement de cette liste, un fichier XL correspondant doit etre crée s'il n'est pas existant, ouvert s'il l'est.
C'est sans doute une question de débutant alors je m'en excuse par avance.
Cyril
A voir également:
- Recherche d'un fichier XL, nom/path connus
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, ton second paragraphe est en contradiction avec le premier. peux-tu partager le code de ta macro, pour éviter tout malentendu?
tiens aussi compte de la réponse que tu as reçue: https://forums.commentcamarche.net/forum/affich-35580544-creation-d-un-fichier-excel-protege-mot-d-passe
tiens aussi compte de la réponse que tu as reçue: https://forums.commentcamarche.net/forum/affich-35580544-creation-d-un-fichier-excel-protege-mot-d-passe
Bonjour,
Merci pour la réponse et désolé si je ne suis pas clair.
le tableau dans ma macro est MonTabListeRM(a, b); il faut que la macro check que : pour chaque ligne de ce tableau, un fichier correpondant dans un dossier spécifique existe ou pas.
Si un fichier existe alors la macro n'aura juste qu'à le modifier, et s'il n'existe pas il faudra le créer avec le nom
MonTabListeRM(a, 1) & ".xlsx".
Je ne suis pas sur que mon code soit trés fiable...ni trés propre.
EDIT : Ajout des balises de code
Merci pour la réponse et désolé si je ne suis pas clair.
le tableau dans ma macro est MonTabListeRM(a, b); il faut que la macro check que : pour chaque ligne de ce tableau, un fichier correpondant dans un dossier spécifique existe ou pas.
Si un fichier existe alors la macro n'aura juste qu'à le modifier, et s'il n'existe pas il faudra le créer avec le nom
MonTabListeRM(a, 1) & ".xlsx".
Je ne suis pas sur que mon code soit trés fiable...ni trés propre.
a = 1 b = 1 x = 0 For a = 1 To NombLigneTabRM Rep = "K:\GVA\P1\P1O\P1O_All\Marketing\" Fichier = Dir(Rep) Do While Fichier <> "" If Fichier = MonTabListeRM(a, b) & ".xlsx" Then ' ouvre le fichier et modifie le Workbooks.Open Filename:="K:\GVA\P1\P1O\P1O_All\Marketing\" & MonTabListeRM(a, b) & ".xlsx", Password:=MonTabListeRM(a, 4) Set Feuille2 = Sheets.Add(After:=ActiveSheet) Feuille2.Name = MonTabEvenement(1, 2) & " " & MonTabEvenement(2, 2) ActiveWorkbook.Save ActiveWorkbook.Close x = 1 End If Fichier = Dir Loop If x = 0 Then 'crée le fichier et Workbooks.Add Set Feuille2 = Sheets.Add(After:=ActiveSheet) Feuille2.Name = MonTabEvenement(1, 2) & " " & MonTabEvenement(2, 2) ChDir "K:\GVA\P1\P1O\P1O_All\Marketing" ActiveWorkbook.SaveAs Filename:="K:\GVA\P1\P1O\P1O_All\Marketing\" & MonTabListeRM(a, b) & ".xlsx", Password:=MonTabListeRM(a, 4), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ActiveWorkbook.Close End If x = 0 Next a
EDIT : Ajout des balises de code
comme tu n'es dis rien, je suppose que le code fait ce que tu veux.
suggestions d'améliorations:
- ajouter "option explicit" en début de module, et déclarer tes variables
- utiliser des noms représentatifs pour tes variables
ta logique me semble très bizarre. pourquoi parcourir la liste des fichiers présents dans le dossier pour vérifier si un fichier déterminé est présent? moi je vérifierais directement si le fichier est présent, sans faire de boucle.
une ébauche:
suggestions d'améliorations:
- ajouter "option explicit" en début de module, et déclarer tes variables
- utiliser des noms représentatifs pour tes variables
ta logique me semble très bizarre. pourquoi parcourir la liste des fichiers présents dans le dossier pour vérifier si un fichier déterminé est présent? moi je vérifierais directement si le fichier est présent, sans faire de boucle.
une ébauche:
Dim rep As String Dim A As Long Dim b As Long Dim NombLigneTabRM As Long Dim MonTabListeRM, MonTabEvenement Dim Feuille2 As Worksheet b = 1 rep = "K:\GVA\P1\P1O\P1O_All\Marketing\" For A = 1 To NombLigneTabRM If Dir(rep & MonTabListeRM(A, b) & ".xlsx") <> "" Then ' ouvre le fichier et modifie le Workbooks.Open Filename:="K:\GVA\P1\P1O\P1O_All\Marketing\" & MonTabListeRM(A, b) & ".xlsx", Password:=MonTabListeRM(A, 4) Set Feuille2 = Sheets.Add(After:=ActiveSheet) Feuille2.Name = MonTabEvenement(1, 2) & " " & MonTabEvenement(2, 2) ActiveWorkbook.Save ActiveWorkbook.Close Else 'crée le fichier et Workbooks.Add Set Feuille2 = Sheets.Add(After:=ActiveSheet) Feuille2.Name = MonTabEvenement(1, 2) & " " & MonTabEvenement(2, 2) ChDir "K:\GVA\P1\P1O\P1O_All\Marketing" ActiveWorkbook.SaveAs Filename:="K:\GVA\P1\P1O\P1O_All\Marketing\" & MonTabListeRM(A, b) & ".xlsx", Password:=MonTabListeRM(A, 4), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ActiveWorkbook.Close End If Next A