OVH Cloud OVH Cloud

chemin et nom d'un fichier

10 réponses
Avatar
denis le breton
pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:\Mes documents\mes tableaux\monfichier.xls
comment récupérer séparément
monfichier.xls
et
C:\Mes documents\mes tableaux\
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton

10 réponses

Avatar
papou
Bonjour
Avec le FileSystemObject c'est possible :
Sub test()
Dim FileToOpen
FileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If FileToOpen <> False Then
MsgBox NomDuFic(FileToOpen)
MsgBox Left(FileToOpen, Len(FileToOpen) - Len(NomDuFic(FileToOpen)))
End If
End Sub
Function NomDuFic(NomComplet)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
NomDuFic = fso.GetFileName(NomComplet)
End Function

Cordialement
Pascal


"denis le breton" a écrit dans le
message de news:
pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton




Avatar
anonymousA
bonjour,

y'a ca aussi si ca t'amuse.on remplace activeworkbook.name par fic et
c'est parti !!!

Sub nomfich()

'Mettre une référence dans le projet à Microsoft Scripting runtime

Dim fso As FileSystemObject

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path
et sans extension
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier
avec path complet et extension
MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path
et avec extension
MsgBox fso.GetParentFolderName(ActiveWorkbook.FullName) 'nom du path
End Sub

A+

pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton




Avatar
Vincnet.
Excuse ma bêtise, mais si tu as le nom complet (yc. chemin
quoi), pourquoi ne pas faire tes tests sur l'extension
avec un Right(fic, 4) ?
A+
V.

-----Message d'origine-----
pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les
différents cas TXT,

CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous
répertoire, le fichier et

l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton


.



Avatar
denis le breton
Pas bête, mais ça je le fais avec accessoirement Right(fic, 3)
mais j'ai besoin de récupérer le répertoire pour enregistrer le fichier
modifier dans le même rép que le fichier d'origine

A+
Et merci
Denis


Excuse ma bêtise, mais si tu as le nom complet (yc. chemin
quoi), pourquoi ne pas faire tes tests sur l'extension
avec un Right(fic, 4) ?
A+
V.

-----Message d'origine-----
pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les
différents cas TXT,

CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous
répertoire, le fichier et

l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton


.






Avatar
denis le breton
ça marche, qui en aurait douté, le seul inconvénient de la soution est que
chaque poste de travail sur lequel doit tournerla procédure doit ajouter la
référence à Microsoft Scripting runtime, et là ....
à moins que tu es quelques chose pour ajouter d'office la référence ...
cela dit c'est super
Merci
Denis



bonjour,

y'a ca aussi si ca t'amuse.on remplace activeworkbook.name par fic et
c'est parti !!!

Sub nomfich()

'Mettre une référence dans le projet à Microsoft Scripting runtime

Dim fso As FileSystemObject

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path
et sans extension
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier
avec path complet et extension
MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path
et avec extension
MsgBox fso.GetParentFolderName(ActiveWorkbook.FullName) 'nom du path
End Sub

A+

pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton







Avatar
denis le breton
I D al
c'est super et cela fonctionne sans modifier le paramétrage du poste de
travail.

Merci Môssieu Papou
Denis


Bonjour
Avec le FileSystemObject c'est possible :
Sub test()
Dim FileToOpen
FileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If FileToOpen <> False Then
MsgBox NomDuFic(FileToOpen)
MsgBox Left(FileToOpen, Len(FileToOpen) - Len(NomDuFic(FileToOpen)))
End If
End Sub
Function NomDuFic(NomComplet)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
NomDuFic = fso.GetFileName(NomComplet)
End Function

Cordialement
Pascal


"denis le breton" a écrit dans le
message de news:
pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton









Avatar
Vincnet.
Bon, alors, une fois que ton fichier est ouvert, tu peux
obtenir son nom (sans chemin) par :
Dim wbk As Workbook
Dim nom, NomComplet, chemin As String
Set wbk = Workbooks.Open("C:Mes documentsmes
tableauxmonfichier.xls")
nom = wbk.Name 'renvoie le nom court ("monfichier.xls")
NomComplet = wbk.FullName 'mais c pareil que ce que t'a
renvoyé le GetOpenFileName
chemin = wbk.Path 'renvoie le chemin, sans "" à la fin
A+
V.
Avatar
anonymousA
re,

ben en fait, ce que je voulais dire mais je me suis mal exprimé (ou pas
du tout d'ailleurs) c'est qu'il te faut rajouter cette ref si tu veux
voir apparaitre l'intellisense pour l'objet fso et surtout si tu veux
déclarer explicitement fso( dim fso as FileSystemObject).
Si tu ne souhaites ni l'un ni l'autre, nul besoin d'avoir ue référence
car le fait d'écire Set fso = CreateObject("Scripting.FileSystemObject")
suffit à créer une liaison tardive et bien sur ca marche.

A+

ça marche, qui en aurait douté, le seul inconvénient de la soution est que
chaque poste de travail sur lequel doit tournerla procédure doit ajouter la
référence à Microsoft Scripting runtime, et là ....
à moins que tu es quelques chose pour ajouter d'office la référence ...
cela dit c'est super
Merci
Denis




bonjour,

y'a ca aussi si ca t'amuse.on remplace activeworkbook.name par fic et
c'est parti !!!

Sub nomfich()

'Mettre une référence dans le projet à Microsoft Scripting runtime

Dim fso As FileSystemObject

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path
et sans extension
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier
avec path complet et extension
MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path
et avec extension
MsgBox fso.GetParentFolderName(ActiveWorkbook.FullName) 'nom du path
End Sub

A+


pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton









Avatar
denis le breton
Solution intéressante et qui fonctionne
j'hésite entrela tienne et celle de Papou
Merci
Denis


Bon, alors, une fois que ton fichier est ouvert, tu peux
obtenir son nom (sans chemin) par :
Dim wbk As Workbook
Dim nom, NomComplet, chemin As String
Set wbk = Workbooks.Open("C:Mes documentsmes
tableauxmonfichier.xls")
nom = wbk.Name 'renvoie le nom court ("monfichier.xls")
NomComplet = wbk.FullName 'mais c pareil que ce que t'a
renvoyé le GetOpenFileName
chemin = wbk.Path 'renvoie le chemin, sans "" à la fin
A+
V.



Avatar
denis le breton
Opulence de bien ne nuit pas
une question 3 réponses
C'est la classe.
Je me confond en remerciement.
Denis


re,

ben en fait, ce que je voulais dire mais je me suis mal exprimé (ou pas
du tout d'ailleurs) c'est qu'il te faut rajouter cette ref si tu veux
voir apparaitre l'intellisense pour l'objet fso et surtout si tu veux
déclarer explicitement fso( dim fso as FileSystemObject).
Si tu ne souhaites ni l'un ni l'autre, nul besoin d'avoir ue référence
car le fait d'écire Set fso = CreateObject("Scripting.FileSystemObject")
suffit à créer une liaison tardive et bien sur ca marche.

A+

ça marche, qui en aurait douté, le seul inconvénient de la soution est que
chaque poste de travail sur lequel doit tournerla procédure doit ajouter la
référence à Microsoft Scripting runtime, et là ....
à moins que tu es quelques chose pour ajouter d'office la référence ...
cela dit c'est super
Merci
Denis




bonjour,

y'a ca aussi si ca t'amuse.on remplace activeworkbook.name par fic et
c'est parti !!!

Sub nomfich()

'Mettre une référence dans le projet à Microsoft Scripting runtime

Dim fso As FileSystemObject

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path
et sans extension
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier
avec path complet et extension
MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path
et avec extension
MsgBox fso.GetParentFolderName(ActiveWorkbook.FullName) 'nom du path
End Sub

A+


pour ouvrir un fichier je passe par un
fic = Application.GetOpenFilename
afin de pouvoir analyser son extension et traiter les différents cas TXT,
CSV et XLS
Mais fic c'est l'unité, le répertoire, le sous répertoire, le fichier et
l'extension exemple
C:Mes documentsmes tableauxmonfichier.xls
comment récupérer séparément
monfichier.xls
et
C:Mes documentsmes tableaux
je ne trouve pas
path renvoie le chemin d'accès d'excel (je m'en tape)

Merci de votre aide
Denis le breton