Recuperer un classeur sans avoir le nom exact
Résolu
Lilice
-
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 -
A voir également:
- Recuperer un classeur sans avoir le nom exact
- Recuperer message whatsapp supprimé - Guide
- Exact audio copy - Télécharger - Conversion & Extraction
- Comment récupérer un compte facebook piraté - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Récupérer mon compte facebook désactivé - Guide
3 réponses
Salut,
C'est évident pour toi, mais pas pour moi. Est-ce que caractères non discriminants signifie qu'un même caractère peut se répéter dans XXXXXX ? Par exemple : AZEZRT (Z 2 fois) ?
Je ne maîtrise pas bien VBA. Et comme je ne sais pas ce que tu veux précisément. Ouvrir le classeur ? L'enregistrer quelque part ? Autre chose, à préciser ?
Je te propose un algorithme :
Tu mets une variable dossier de type String qui contiendra le chemin absolu du répertoire qui contient le fichier. Tu ajoutes une variable fichierDebut du même type qui contient "Classeur" & Format(Date, "yyyymmdd")". Tu ajoutes une variable fichierFin = "_EXPORT_.XLS"
Tu parcours les fichiers dans le répertoire dossier :
Si le fichier commence par fichierDebut ET finit par fichierFin ALORS
Tu ouvres le fichier et une msgbox
Pour la msgbox, tu peux mettre : "Est-ce le bon fichier ?", tu vérifies visuellement. Si c'est le bon, tu arrêtes de parcourir le répertoire et tu traites le fichier.
C'est évident pour toi, mais pas pour moi. Est-ce que caractères non discriminants signifie qu'un même caractère peut se répéter dans XXXXXX ? Par exemple : AZEZRT (Z 2 fois) ?
Je ne maîtrise pas bien VBA. Et comme je ne sais pas ce que tu veux précisément. Ouvrir le classeur ? L'enregistrer quelque part ? Autre chose, à préciser ?
Je te propose un algorithme :
Tu mets une variable dossier de type String qui contiendra le chemin absolu du répertoire qui contient le fichier. Tu ajoutes une variable fichierDebut du même type qui contient "Classeur" & Format(Date, "yyyymmdd")". Tu ajoutes une variable fichierFin = "_EXPORT_.XLS"
Tu parcours les fichiers dans le répertoire dossier :
Si le fichier commence par fichierDebut ET finit par fichierFin ALORS
Tu ouvres le fichier et une msgbox
Pour la msgbox, tu peux mettre : "Est-ce le bon fichier ?", tu vérifies visuellement. Si c'est le bon, tu arrêtes de parcourir le répertoire et tu traites le fichier.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 583
bonjour,
si j'étais toi, j'utiliserais la fonction dir pour déterminer le nom du ficher.
si j'étais toi, j'utiliserais la fonction dir pour déterminer le nom du ficher.
Sub nomfichier()
Dim nomchemin As String
Dim nomfichier As String
nomchemin = "V:\Serveur\Classeur\"
nomfichier = nomchemin + Dir(nomchemin + _
"Classeur" & Format(Date, "yyyymmdd") & "??????_Export_.XLS")
MsgBox nomfichier
End Sub
Globalement ce que tu m'as recommandé mais je récupère en sortie "V:\Serveur\Classeur\" uniquement
D'ailleurs petite remarque mais pourquoi mettre un underscore?
Bonjour,
On peut utiliser LIKE : https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/operators/like-operator
On peut utiliser LIKE : https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/operators/like-operator
En effet, le LIKE permet de filtre après avoir récupéré des noms de fichiers "génériques".
La proposition de yg_be devrait fonctionner mais avec "*" au lieu des "??????" (sauf à être sûr du nombre de caractères à remplacer par "?") soit :
La proposition de yg_be devrait fonctionner mais avec "*" au lieu des "??????" (sauf à être sûr du nombre de caractères à remplacer par "?") soit :
nomfichier = nomchemin + dir(nomchemin + _ "Classeur" & Format(Date, "yyyymmdd") & "*_Export_.XLS")
Mon objectif est de récupérer ce classeur pour prendre ses donnés (sous forme de tableau) et les insérer dans un autre classeur
Effectivement ton idée à l'air pas mal mais je n'arrive pas a trouver le moyen de mettre ça en place
Voici le code que j'ai pu produire. En fonction des itérations Fichier prend bien la valeur texte de chacun des fichiers mais le MsgBox nomfichier ne revoie rien, je suppose que c'est le test Like qui foire..
J'ai aussi essayé en utilisant des debuts et fin de nom mais ça ne change rien
Il manquait le "_" après classeur pour que le code posté en 13 fonctionne comme en 14.
Bonne continuation