Racine du FichierCourant.xls [VBA]

Résolu
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

Je suis entrain de développer une application qui gère des fichiers texte. Pour procéder, je dois définir un répertoire de travail et j'ai décidé que ce répertoire soit dans le dossier qui contient la racine du fichier courant. J'avais trouvé une instruction qui donne le chemin courant, soit "CurDir", mais cette dernière me donne le chemin par défaut de ma session qui est le répertoire "mes documents".

Mes questions sont :
1 - Est ce qu'il y aurait une fonction ou une méthode qui renvoie le chemin du fichier du travail? Notant que le fichier peut être déplacé (chemin non constant)
2 - Y aurait il une fonction ou une méthode qui permet de chercher un fichier selon certaines caractéristiques et de retourner son chemin? (comme la recherche dans l'explorateur de fichiers.)
3 - Est ce qu'il y aurait une fonction ou une méthode qui permet d'accéder au dossier parent d'un répertoire? (moins important)

Je vous remercie d'avance!


A voir également:

6 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Pour la 3ème question

Public Function ExtractDossierParent(ByVal sFullPath As String) As String

    If Right(sFullPath, 1) = "\" Then
        sFullPath = Mid(sFullPath, 1, Len(sFullPath) - 1)
    End If
    
    ExtractDossierParent = Left(sFullPath, InStrRev(sFullPath, "\"))

End Function


Pour l'utiliser:

MsgBox ExtractDossierParent("C:\toto\Temp")

Affiche = "C:\toto\"

Pour la 2ème question, je n'ai pas tout saisie ... tu veux ouvrir un explorateur et récupérer le chemin du fichier sélectionné par l'utilisateur ?

;o)

;o)
2
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
C'est astucieux comme code! Merci beaucoup

Pour la deuxième question, je voulais effectuer une recherche d'un fichier et récupérer le chemin du fichier si trouvé.
Mais ce que tu m'as donné c'est déjà très utile. Encore merci!
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
De rien.

C'est un code trouvé je ne sais plus sur quel site qui, à l'origine, permet d'extraire le répertoire racine d'un fichier à partir de son chemin complet.
Je n'ai fait que l'adapter à ton besoin.

Bon continuation et bon courage.

;o)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
re, bonjour Polux

Pour retrouver le chemin d'un fichier, regarde cette URL sur le site (incontournable) de Frédéric Sigonneau

http://frederic.sigonneau.free.fr/code/Fichiers/ChercheAvecBaseName.txt
0
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Merci beaucoup les gars!
Je met en 'résolu'
0
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Je réponds à ma première question pour ceux que ça intéresserait
1 - La fonction CurDir doit contenir en argument le bon caractère du lecteur. e.g. CurDir("X") si le répertoire se trouve dans le lecteur X. Alors cette fonction rend le chemin du fichier courant.
La question devient alors : quelle est la fonction qui donne le caractère du lecteur par défaut?
1
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
chemin du fichier de travail:

thisworkbook.path
1
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Merci beaucoup! C'est exactement ça!
0
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Dans la crainte de le perdre, je copie l'essentiel du code qu'a référencé michel_m selon le lien suivant : http://frederic.sigonneau.free.fr/code/Fichiers/ChercheAvecBaseName.txt


< Proc supprimée pour respect de la charte >
Mais l'essentiel du code est ce qui suit :

- Il convient de savoir comment créer les trois objets:
Set fso = CreateObject("Scripting.FileSystemObject")
Set Lecteurs = fso.drives
Set Fichiers = Racine.Files
Pour ça je propose le site suivant : https://warin.developpez.com/access/fichiers/#LII

- Il faut créer une boucle de comparaison qui marche sur ce principe :
For Each Fichier In Fichiers
If UCase(fso.getbasename(Fichier.Path)) = UCase(nomFichier) Then
...
Retour.Add Fichier.Path, Fichier.Path
...
End If
Next
1
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour,

Recopier une proc d'un autre sans son autorisation est contraire à la netiquette. Il est d'usage de citer le site uniquement (un forumeur est normalement capable de faire un clic sur un lien qui plus est déjà cité)... Donc, il serait souhaitable que tu supprimes ce message
d'avance merci :-)
0
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Je ne savais pas!
Merci pour le conseil!
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
OK, alors passe à l'action !!!
:-(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Bonjour,

L'utilisation de la bibliothèque FileSystemObject est une alternative très intéressante pour la gestion des fichiers. Cependant, elle n'est pas ajoutée par défaut à certains logiciels (ce qui fut mon cas - Excel 2000). Pour la faire prendre en compte, la prose donne ces deux méthodes:

1 - Démarrer > Exécuter > "regsvr32 scrrun.dll" & "Entrée"

2 - Sur la page de développement VBA : Barre des menus > Outils > Références --> Cocher "Microsoft Scripting Runtime"
1
commentcamarcheeay Messages postés 667 Date d'inscription   Statut Membre Dernière intervention   86
 
Le site suivant fait un tour global de toutes les fonctionnalité du FileSystemObject :
https://warin.developpez.com/access/fichiers/#LII
0