OVH Cloud OVH Cloud

je veux savoir...

5 réponses
Avatar
Fredo
Bonjour =E0 tous

Est il possible de connaitre le chemin complet
d'un classeur ouvert alors que ce dernier n'a pas encore=20
=E9t=E9 enregistr=E9....

je m'explique, j'ai un fichier nomm=E9 : "tableau.xlt"
(donc fichier modele), l'utilisateur l'ouvre en faisant=20
un double clic, et donc le nom du classeur=20
est "tableau1.xls" , a ce stade, l'utilisateur NE L'A=20
toujours pas enregistr=E9, MAIS MOI j'ai besoin de connaitre=20
son emplacement (si vous avez tout suivi, c'est le chemin=20
du fichier XLT qui m'interesse),=20
Qui peux m'aider
merci
FREDO

5 réponses

Avatar
Charles
Ca sent la magouille...

Charles
;-)

"Fredo" a écrit dans le message de
news: 3bc501c3aa7a$db9a7250$
Bonjour à tous

Est il possible de connaitre le chemin complet
d'un classeur ouvert alors que ce dernier n'a pas encore
été enregistré....

je m'explique, j'ai un fichier nommé : "tableau.xlt"
(donc fichier modele), l'utilisateur l'ouvre en faisant
un double clic, et donc le nom du classeur
est "tableau1.xls" , a ce stade, l'utilisateur NE L'A
toujours pas enregistré, MAIS MOI j'ai besoin de connaitre
son emplacement (si vous avez tout suivi, c'est le chemin
du fichier XLT qui m'interesse),
Qui peux m'aider
merci
FREDO
Avatar
Ellimac
Bonjour,

Cela me semble difficile !!!!
Une solution en incluant une macro à l'ouverture du modèle
qui indique le chemin.

Camille

-----Message d'origine-----
Bonjour à tous

Est il possible de connaitre le chemin complet
d'un classeur ouvert alors que ce dernier n'a pas encore
été enregistré....

je m'explique, j'ai un fichier nommé : "tableau.xlt"
(donc fichier modele), l'utilisateur l'ouvre en faisant
un double clic, et donc le nom du classeur
est "tableau1.xls" , a ce stade, l'utilisateur NE L'A
toujours pas enregistré, MAIS MOI j'ai besoin de
connaitre

son emplacement (si vous avez tout suivi, c'est le chemin
du fichier XLT qui m'interesse),
Qui peux m'aider
merci
FREDO
.



Avatar
Vincent.
Salut Fredo, Camille, Charles...
Voici la méthode permettant de récupérer le dossier des
extensions .xlt d'XL :
Application.NetworkTemplatesPath
En revanche, dans l'exemple, tableau1.xls n'a pas de
chemin d'accès puisqu'il n'est pas enregistré...
Une solution peut être de créer une macro auto_open qui
enregistre le fichier dans Temp par exemple.
Reviens si tu veux plus de précisions...
A+

V.

-----Message d'origine-----
Bonjour à tous

Est il possible de connaitre le chemin complet
d'un classeur ouvert alors que ce dernier n'a pas encore
été enregistré....

je m'explique, j'ai un fichier nommé : "tableau.xlt"
(donc fichier modele), l'utilisateur l'ouvre en faisant
un double clic, et donc le nom du classeur
est "tableau1.xls" , a ce stade, l'utilisateur NE L'A
toujours pas enregistré, MAIS MOI j'ai besoin de
connaitre

son emplacement (si vous avez tout suivi, c'est le chemin
du fichier XLT qui m'interesse),
Qui peux m'aider
merci
FREDO
.



Avatar
Modeste
Bonjour,
en complément d'information de ce qui à déja eté dit
précédement,
si tu crée un nouveau classeur en choisissant nouveau
ex:factures.xlt

le nouveau classeur reprend le nom du xlt affublé d'un
indice, exemple : factures1.xls

si maintenant tu enregistres ce fichier,
ce fichier est alors enregistré dans le "Dossier par
défaut" tel que défini dans les options.

exemple :
Sub toto()
MsgBox Application.TemplatesPath
MsgBox Application.DefaultFilePath
End Sub

!!!!!!!!!
si tu fais "enregistrer sous" :
le chemin n'est alors connu que de toi-même !!!!!!
EXCEL ne peut etre devin ;-)))

@+


-----Message d'origine-----
Salut Fredo, Camille, Charles...
Voici la méthode permettant de récupérer le dossier des
extensions .xlt d'XL :
Application.NetworkTemplatesPath
En revanche, dans l'exemple, tableau1.xls n'a pas de
chemin d'accès puisqu'il n'est pas enregistré...
Une solution peut être de créer une macro auto_open qui
enregistre le fichier dans Temp par exemple.
Reviens si tu veux plus de précisions...
A+

V.

-----Message d'origine-----
Bonjour à tous

Est il possible de connaitre le chemin complet
d'un classeur ouvert alors que ce dernier n'a pas encore
été enregistré....

je m'explique, j'ai un fichier nommé : "tableau.xlt"
(donc fichier modele), l'utilisateur l'ouvre en faisant
un double clic, et donc le nom du classeur
est "tableau1.xls" , a ce stade, l'utilisateur NE L'A
toujours pas enregistré, MAIS MOI j'ai besoin de
connaitre

son emplacement (si vous avez tout suivi, c'est le
chemin


du fichier XLT qui m'interesse),
Qui peux m'aider
merci
FREDO
.

.





Avatar
Frédéric Sigonneau
Bonsoir,

Tu peux utiliser le code ci-dessous pour arriver à tes fins. En premier lieu, la
procédure 'test' reconstitue le nom du modèle avec son extension xlt puis la
fonction TrouveFichier va le chercher sur l'ensemble des disques locaux. Le code
est à recopier dans un module standard d'un classeur 'extérieur' au classeur
basé sur le modèle recherché et exécuté lorsque ce dernier est le classeur actif
(à partir d'un bouton de barre d'outil par exemple) :

'================== Declare Function SearchTreeForFile Lib "IMAGEHLP.DLL" _
(ByVal lpRootPath As String, _
ByVal lpInputName As String, _
ByVal lpOutputName As String) As Long

Public Const MAX_PATH = 260

Sub test()
Dim NomModele$
NomModele = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - 1) &
".xlt"
'nom et chemin complet
MsgBox TrouveFichier(NomModele)
'chemin seul
MsgBox Split(TrouveFichier(NomModele), NomModele)(0)
End Sub

'la fonction renvoie le chemin complet et le nom du fichier cherché
'entrer le Nom en paramètre sous la forme nomFichier.extension
Function TrouveFichier(ByVal Nom As String)
Dim fso As Object, Lecteurs As Object, L As Object, S$

Set fso = CreateObject("Scripting.FileSystemObject")
Set Lecteurs = fso.drives

TrouveFichier = ""

'récupère les lecteurs locaux (type 2) et les passe en revue
For Each L In Lecteurs
If L.DriveType = 2 Then
S = L.driveletter & ":"
If FindFile(S, Nom) <> "" Then
TrouveFichier = FindFile(S, Nom)
Exit For
End If
End If
Next L

End Function

Public Function FindFile(RootPath As String, FileName As String) As String
'Karl Moore, http://www.vbworld.com/files/tip529.html
'la recherche avec cette API est *très* rapide !!
Dim lNullPos As Long
Dim lResult As Long
Dim sBuffer As String

On Error GoTo FileFind_Error

'fournit par défaut le lecteur courant si non spécifié (fs)
If RootPath = "" Then RootPath = Left$(CurDir, 3)

'Allocate buffer
sBuffer = Space(MAX_PATH * 2)

'Find the file
lResult = SearchTreeForFile(RootPath, FileName, sBuffer)

'Trim null, if exists
If lResult Then
lNullPos = InStr(sBuffer, vbNullChar)
If Not lNullPos Then
sBuffer = Left(sBuffer, lNullPos - 1)
End If
'Return filename
FindFile = sBuffer
Else
'Nothing found
FindFile = vbNullString
End If

Exit Function

FileFind_Error:
FindFile = vbNullString

End Function
'==================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous

Est il possible de connaitre le chemin complet
d'un classeur ouvert alors que ce dernier n'a pas encore
été enregistré....

je m'explique, j'ai un fichier nommé : "tableau.xlt"
(donc fichier modele), l'utilisateur l'ouvre en faisant
un double clic, et donc le nom du classeur
est "tableau1.xls" , a ce stade, l'utilisateur NE L'A
toujours pas enregistré, MAIS MOI j'ai besoin de connaitre
son emplacement (si vous avez tout suivi, c'est le chemin
du fichier XLT qui m'interesse),
Qui peux m'aider
merci
FREDO