Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Bricofire

XLDnaute Impliqué
Bonjour Eclipse, Michel_m,

Selon le sens de ta question s'il s'agit de trouver l'autre classeur sur un autre micro avec le même nom, mais pas forcément le même chemin, vois du côté de FileSeach (cf aide vba).

Bon We,
Brico
 

Dull

XLDnaute Barbatruc
Salut Eclipse, Michel_m, Brico,Le Forum,

J'ai eu le même problème une fois

met ton fichier dans C:\\[Ton dossier].xls
et BOOM ça ne devrais plus poser de problèmes.

@+ :woohoo:
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…