Bonjour à tous,
pour l'une de mes macros, j'ai besoin de connaître de nom de mon fichier pour ensuite le comparer aux fichiers ouverts, et ainsi l'ouvrir si pas ouvert.
Pour cela j'ai écris une fonction, à l'aide de mon manuel de référence VBA, qui me donne le nom du fichier à partir du chemin complet. Pour une raison qui m'échappe, la fonction NomFichier ne fonctionne pas:
Code :
- Function ObtenirNomFichier(stNomComplet As String) As String
- 'ObtenirNomFichier retourne le nom de fichier, comme Toto.xls à partir
- 'de la fin d'un chemin complet tel que C:\Données\Cash.xls
- 'stNomComplet est retournée si aucun séparateur de chemin n'est trouvé
-
- Dim stSeparateurChemin As String 'caractère de séparateur de chemin
- Dim iLongueurNomFichier As Integer 'Longueur de stNomComplet
- Dim i As Integer
-
- stSeparateurChemin = Application.PathSeparator
- Debug.Print ("Séparateur: " & stSeparateurChemin)
- iLongueurFichier = Len(stNomComplet)
- Debug.Print iLongueurFichier
- 'trouve le dernier caractère de séparateur de chemin s'il existe
- For i = iLongueurNomFichier To 1 Step -1
- If Mid(stNomComplet, i, 1) = stSeparateurChemin Then Exit For
- Next i
- ObtenirNomFichier = Right(stNomComplet, iLongueurNomFichier - i)
- Debug.Print ("i: " & i)
- Debug.Print ("fichier:" & ObtenirNomFichier)
- Debug.Print ("----------------------------------------" )
- End Function
|
j'obtient le résultat suivant avec la fenête d'execution:
ObtenirNomFichier("c:\data\toto.xls" )
Séparateur: \
16
i: 0
fichier:
----------------------------------------
pour le moment je tourne en rond, je suis surement passé à coté de quelque chose.
quel est votre avis?