Recuperer un classeur sans avoir le nom exact
Résolu/Fermé
Lilice
-
21 avril 2021 à 12:55
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 26 avril 2021 à 14:07
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 26 avril 2021 à 14:07
A voir également:
- Recuperer un classeur sans avoir le nom exact
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Récupérer mon compte facebook avec mon nom - Forum Facebook
3 réponses
dachiasse
Messages postés
1709
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
13 mai 2021
148
21 avril 2021 à 13:17
21 avril 2021 à 13:17
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
22730
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
1 477
21 avril 2021 à 13:22
21 avril 2021 à 13:22
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.
yg_be
Messages postés
22730
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
1 477
21 avril 2021 à 13:30
21 avril 2021 à 13:30
exemple:
Dim nomfichier As String, nomchemin as string nomchemin= "V:\Serveur\" nomfichier = nomchemin + dir(nomchemin + _ "Classeur" & Format(Date, "yyyymmdd") & "??????_Export_.XLS")
VictorVM1
Messages postés
15
Date d'inscription
mercredi 21 avril 2021
Statut
Membre
Dernière intervention
5 mai 2021
>
yg_be
Messages postés
22730
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
21 avril 2021 à 15:17
21 avril 2021 à 15:17
Salut, merci de ton aide. Malheureusement le MsgBox me renvoie V:\Serveur\ (que le chemin). Je ne connais pas vraiment la fonction dir mais ne faudrait il pas séparer le chemin et la recherche du nom qui serait une sorte d'attribut?
yg_be
Messages postés
22730
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
1 477
>
VictorVM1
Messages postés
15
Date d'inscription
mercredi 21 avril 2021
Statut
Membre
Dernière intervention
5 mai 2021
21 avril 2021 à 16:03
21 avril 2021 à 16:03
peux-tu partager ton code?
VictorVM1
Messages postés
15
Date d'inscription
mercredi 21 avril 2021
Statut
Membre
Dernière intervention
5 mai 2021
>
yg_be
Messages postés
22730
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
Modifié le 22 avril 2021 à 08:31
Modifié le 22 avril 2021 à 08:31
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?
yg_be
Messages postés
22730
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
1 477
>
VictorVM1
Messages postés
15
Date d'inscription
mercredi 21 avril 2021
Statut
Membre
Dernière intervention
5 mai 2021
22 avril 2021 à 08:21
22 avril 2021 à 08:21
tu n'as pas utilisé le code suggéré.
Utilisateur anonyme
21 avril 2021 à 13:24
21 avril 2021 à 13:24
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
VictorVM1
Messages postés
15
Date d'inscription
mercredi 21 avril 2021
Statut
Membre
Dernière intervention
5 mai 2021
21 avril 2021 à 15:31
21 avril 2021 à 15:31
Bonjour, pourquoi pas, mais j'ai l'impression que Like ne dit que si il y a un fichier ayant un nom similaire ou non
Utilisateur anonyme
>
VictorVM1
Messages postés
15
Date d'inscription
mercredi 21 avril 2021
Statut
Membre
Dernière intervention
5 mai 2021
Modifié le 21 avril 2021 à 18:19
Modifié le 21 avril 2021 à 18:19
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")
21 avril 2021 à 15:07
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
21 avril 2021 à 16:47
22 avril 2021 à 09:33
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
22 avril 2021 à 09:49
22 avril 2021 à 14:30
Il manquait le "_" après classeur pour que le code posté en 13 fonctionne comme en 14.
Bonne continuation