Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1497 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba] Fonction Nom de Fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vba] Fonction Nom de Fichiers

n°1132333
bluehangel
Posté le 27-06-2005 à 14:45:26  profilanswer
 

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 :
  1. Function ObtenirNomFichier(stNomComplet As String) As String
  2.     'ObtenirNomFichier retourne le nom de fichier, comme Toto.xls à partir
  3.     'de la fin d'un chemin complet tel que C:\Données\Cash.xls
  4.     'stNomComplet est retournée si aucun séparateur de chemin n'est trouvé
  5.    
  6.     Dim stSeparateurChemin As String    'caractère de séparateur de chemin
  7.     Dim iLongueurNomFichier As Integer  'Longueur de stNomComplet
  8.     Dim i As Integer
  9.    
  10.     stSeparateurChemin = Application.PathSeparator
  11.     Debug.Print ("Séparateur: " & stSeparateurChemin)
  12.     iLongueurFichier = Len(stNomComplet)
  13.     Debug.Print iLongueurFichier
  14.     'trouve le dernier caractère de séparateur de chemin s'il existe
  15.     For i = iLongueurNomFichier To 1 Step -1
  16.         If Mid(stNomComplet, i, 1) = stSeparateurChemin Then Exit For
  17.     Next i
  18.     ObtenirNomFichier = Right(stNomComplet, iLongueurNomFichier - i)
  19.     Debug.Print ("i: " & i)
  20.     Debug.Print ("fichier:" & ObtenirNomFichier)
  21.     Debug.Print ("----------------------------------------" )
  22. 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?
 
 
 
 

mood
Publicité
Posté le 27-06-2005 à 14:45:26  profilanswer
 

n°1132367
friday_13
sans avatar fixe
Posté le 27-06-2005 à 14:58:52  profilanswer
 

essaie ceci :
Dim fso As FileSystemObject
Dim strFileName As String
 
Set fso = New FileSystemObject
 
strFileName = fso.GetFileName("c:\autoexec.bat" )
MsgBox strFileName

n°1133407
bluehangel
Posté le 28-06-2005 à 11:35:23  profilanswer
 

aucun résultats,  
 
la fenêtre qui apparait est vide,
 
il me manque peut être un package?

n°1133411
bluehangel
Posté le 28-06-2005 à 11:37:25  profilanswer
 

D'autres avis?

n°1133455
lhonolulu
Posté le 28-06-2005 à 12:05:01  profilanswer
 

J'utilise la mm méthode que friday_13.
Mais tu dois rajouter la librairire : microsoft scripting runtime pour que ca fonctionne

n°1133464
bluehangel
Posté le 28-06-2005 à 12:13:26  profilanswer
 

la fenêtre reste désespérement vide

n°1133475
lhonolulu
Posté le 28-06-2005 à 12:20:21  profilanswer
 

Je ne comprend pas quel nom de fichier tu veux comparer.
En gros tu as des fichiers dans un répertoire, et s'il n'est pas ouvert tu veux l'ouvrir c ca ?

n°1133498
bluehangel
Posté le 28-06-2005 à 12:29:53  profilanswer
 

Dans un premier temps, je souhaite récupérer les noms des fichiers de travail pour les transformer en variables.
 
Le but est de supprimer les contraintes des noms de fichiers, ils  peuvent être modifier par l'utilisateur, mais aussi pour éviter préciser les noms des fichiers en dur dans mon code.
 
Ensuite je vais manipuler ces différent nom de fichiers et crées des boucles de contrôles pour vérifier le chemin du répertoire de travail; élément nécessaire au contrôle de l'éxecutable sous windows (éxécutable "Fortran" )


Message édité par bluehangel le 28-06-2005 à 12:34:34
n°1134321
4get9
C'est clair !
Posté le 29-06-2005 à 09:13:32  profilanswer
 

trouvé :
 
    * 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
 
 :D  
je l'ai vu juste en compilant  :lol:


Message édité par #SubZero le 29-06-2005 à 09:14:59
n°1134364
bluehangel
Posté le 29-06-2005 à 09:45:13  profilanswer
 

Merci,  
c'est la bourde que je cherchais,
 
question: tu compiles avec quel logiciel?


Message édité par bluehangel le 29-06-2005 à 09:52:02
mood
Publicité
Posté le 29-06-2005 à 09:45:13  profilanswer
 

n°1135151
4get9
C'est clair !
Posté le 29-06-2005 à 20:02:12  profilanswer
 

J'ai utilisé Access et dans la fenêtre de code j'ai un bouton pour "compiler"
C'est du moins ce qu'indique l'info-bulles  ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba] Fonction Nom de Fichiers

 

Sujets relatifs
[MySQL] sélection aléatoire d'enregistrement en fonction de ....[PostgreSQL] trigger qui ne passe pas les param à la fonction
Recherche multi-fichiersfonction dopostback
Peut ont recupére la valeur de retour d'une fonction JS dans du php?Fonction javascript permettant de continuer le traitement ou non
problème chmod / lecture de fichiers sur un serveurQUel navigateur pour lire des fichiers html de tres grande taille ?
Fonction freadfonction mysql
Plus de sujets relatifs à : [vba] Fonction Nom de Fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR