Je souhaite faire la mise à jour d’un fichier à partir d’un autre fichier qui a une partie fixe nommée MaListe_ et une partie variable (en fait la date du jour).
Pour éviter de modifier à chaque fois ma macro qui fonctionne avec le nom complet du fichier (exemple MaListe_2020-03-06) j’ai remplacé la partie terminale par une étoile mais la macro ne fonctionne pas. Un message m’indique que le fichier est introuvable. Code :
Bonsoir Rounil,
J'ai bidouillé une macro à l'origine pour ouvrir un fichier avec seulement un morceau du nom.
Comme ça ressemble à votre besoin, testez le.
Bonjour rounil09
Tu es donc en présence de plusieurs fichiers de même "préfixe"
Deux solutions (selon que tu veux choisir parmi eux ou décider d'ouvrir le plus récent) :
Les deux utilisent la fonction Dir, mais différemment selon ce que tu veux faire. Et que veux-tu faire ? Choisir ou ouvrir le plus récent ?
Bonjour rounil09
Tu es donc en présence de plusieurs fichiers de même "préfixe"
Deux solutions (selon que tu veux choisir parmi eux ou décider d'ouvrir le plus récent) :
Les deux utilisent la fonction Dir, mais différemment selon ce que tu veux faire. Et que veux-tu faire ? Choisir ou ouvrir le plus récent ?
Merci de ton aide jmfmarques.
Je pesais garder dans "Mes documents" le dernier fichier mais si c'est possible de choisir le fichier le plus récent je suis évidemment partant.
Cela permet de conserver tous les fichiers un moment en d'erreurs avant de faire le ménage.
Pour information
Dans les dernières versions d'Excel, il existe plusieurs versions d'un même fichier
Fichier/Informations/Gérer les versions
C'est une piste à explorer, non ?
Et tu n'aurais alors qu'un seul fichier
Pour information
Dans les dernières versions d'Excel, il existe plusieurs versions d'un même fichier
Fichier/Informations/Gérer les versions
C'est une piste à explorer, non ?
Et tu n'aurais alors qu'un seul fichier
Bonjour,
Merci Sptaple 1600 de ta suggestion mais je ne vois pas comment je peux avancer avec cette piste que je viens d'examiner
En fait, ce n'est pas un problème pour moi de garder un seul fichier.
Le problème c'est que la partie finale du fichier est variable et que les 2 macros (voir ci-dessus) qui appellent la seule partie variable ne fonctionnent pas.
Comme suggéré par jfm marques je vais explorer la fonction dir, mais mon niveau VBA est faible...
Observation/précision : il est clair que doit être connu le chemin complet du dossier contenant le(s) fichier(s) ainsi nommé(s)
Confirme-nous que tel est bien le cas et indique-nous ce chemin complet.
Si tel n'était pas le cas, ce serait dans le meilleur des cas plutôt risqué, plusieurs fichiers en "harmonie" pouvant être présents dans des dossiers différents (à commencer par des sauvegardes éventuelles)
Le développeur averti utilise en général un chemin de dossier relatif à celui de son classeur.
Bonjour tout le monde,
Rounil, dans ma macro il y a un bug. Il manque un guillemet.
A la fin de Rep = "C:\Users\gerar\Documents\ mettre un guillemet.
Rep = "C:\Users\gerar\Documents\"
Désolé, mais je n'ai pas testé ce chemin qui ne veut rien dire chez moi.
La macro ne peut pas répondre Non trouvé si votre fichier contient "MaListe_"
Bonjour Sylvanu,
La macro fonctionne parfaitement. J'avais bien changé le chemin mais pas vu qu'il manquait les guillemets. Pas glop pour moi.
Merci de ton aide et bonne journée
bonjour
chemin=dir("C:\Users\gerar\Documents\MaListe_*.xls")
' ca te choppe le premier de la liste si plusieurs fichier même préfixe
if chemin<>"" then
Workbooks.Open (chemin )
bonjour
chemin=dir("C:\Users\gerar\Documents\MaListe_*.xls")
' ca te choppe le premier de la liste si plusieurs fichier même préfixe
if chemin<>"" then
Workbooks.Open (chemin )
Merci patricktoulon
Je viens de tester le code, il fonctionne parfaitement. ".xls" avec 2016???? : Le fichier que je reçois n'est pas de mon cru, il m'arrive à ce format.
=>nilrou90
1) Ce n'est point Sptaple 1600 mais Staple1600
2) Ce qui est bien avec les pistes à explorer, c'est qu'on peut aussi les fermer si elles ne sont pas satisfaisantes.