Chemin d'un classeur

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
 

michel_m

XLDnaute Accro
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
 

Jam

XLDnaute Accro
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.
 

Discussions similaires