Chemin d'un classeur

  • Initiateur de la discussion Initiateur de la discussion Eclipse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Eclipse

Guest
Bonjour,
Suis sous Window XP
J'ai un classeur dans lequel une macro fait appel a un autre classeur en indiquant le chemin d'acces.
Si je transfer ces dosier sur un autre ordinateur le chemin n'est plus le meme ; Y a til un moyen de donner un chein générique qui permet de travailler sur plusieur ordinateurs.
J'espere avoir été assez clair?
Merci par avance de votre réponse
 
Bonjour,

j'avais eu ce problème et voilà ce que j'avais bidouilé (il y a certainement plus élégant)

Dans le classeur source j'avais installé une macro workbook_open avec une instruction du genre

range('A1')=thisworbook.path

Dans le classeur cible, j'avais une cellule ('A2')avec la liaison classique par formule et une macro worbook_open effectuant la mise à jour tout en empèchant la boite de dialogue par excel de la mise à jour (je n'ai plus les instructions en tête)

ensuite dans la macro du classeur source
chemin= range('A2')

une autre solution serait d'indiquer le chemin par une formule Excel (fonction 'info') et d'utiliser une recherche dans un fichier fermé (macro Excel 4 de Walkenwatch)

A+
Michel_M
 
Salut à tous,

Ton problème vient probablement du fait que tu sauves tes fichiers dans Mes Documents. Il faut donc récupérer le chemin de Mes Documents et y ajouter le nom de ton fichier.

Voici un p'tit bout de code de L. Longre qui permet de retrouver le chemin de Mes Documents:
Code:
Private Declare Function SHGetSpecialFolderLocation Lib 'Shell32' _
  (ByVal hwnd As Long, ByVal nFolder As Long, ppidl As Long) As Long

Private Declare Function SHGetPathFromIDList Lib 'Shell32' _
  (ByVal Pidl As Long, ByVal pszPath As String) As Long

Sub test()
  MsgBox '''Mes Documents'' = ' & DSpec(5)
End Sub

Private Function DSpec(nFolder As Long) As String
  Dim Pidl As Long
  SHGetSpecialFolderLocation 0, nFolder, Pidl
  DSpec = Space(260)
  SHGetPathFromIDList Pidl, DSpec
  DSpec = Left$(DSpec, InStr(1, DSpec, vbNullChar) - 1)
End Function

'Liste des codes les plus intéressant:
' 0 --> Bureau
' 2 --> Menu Démarrer\\Programmes
' 5 --> Mes Documents
' 6 --> Favoris
' 7 --> Menu Démarrer\\Programmes\\Démarrage
' 8 --> Recent
' 9 --> SendTo
'11 --> Menu Démarrer
'16 --> Bureau
'19 --> Voisinage réseau
'20 --> Fonts
'21 --> ShellNew
'25 --> All users\\Bureau
'26 --> Application Data
'27 --> PrintHood
'32 --> Temporary Internet Files
'33 --> Cookies
'34 --> Historique

J'arrive peut-être après la guerre, mais j'espère que cela t'aidera.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
2 K
A
Réponses
6
Affichages
2 K
A
X
Réponses
0
Affichages
750
X
G
Réponses
0
Affichages
986
G
Retour