XL 2013 Declare PtrSafe FUNCTION.......

escouger

XLDnaute Occasionnel
Bonjour,

J'ai un tableau dans lequel figure l'instruction suivante:

Private Declare PtrSafe Function SetCurrentDirectoryA Lib "Kernel32" (ByVal lpPathName As String) As Long

Je dois déployer ce tableau sur plusieurs PC dont certains sont en 32 bits d'autres en 64 bits.

Avec Private Declare PtrSafe Function SetCurrentDirectoryA Lib "Kernel32" (ByVal lpPathName As String) As Long
cela fonctionne sur les systèmes 64 bits, mais pas sur les 32 bits.

Avec Private Declare Function SetCurrentDirectoryA Lib "Kernel32" (ByVal lpPathName As String) As Long
(donc sans le PtrSafe) cela fonctionne sur les systèmes 32 bits, mais plus sur les systèmes 64 bits.

Pour des questions de maintenance, je ne voudrais pas avoir à gérer 2 tableaux identiques hormis cette option "PtrSafe".
Y-a-t-il un moyen ?

Je ne sais pas :
1) comment tester si le PC est 32 bits ou 64bits?
2) conditionner une instruction "Déclare....

Est-ce-que la version d'Excel entre aussi en ligne de compte concernant ce paramètre PtrSafe ?

Si vous avez une idée pour dépasser ce problème elle sera la bienvenue

Merci d'avance

GE
 

Marc L

XLDnaute Occasionnel

Bonjour, bonjour !

Cela aurait été simple en utilisant les instructions internes au VBA comme [highlight]ChDrive[/code] & [highlight]ChDir[/code] !

_______________________________________________________________________________
Je suis Paris, Charlie, …
 

Dranreb

XLDnaute Barbatruc
Re : Declare PtrSafe FUNCTION.......

Bonjour Marc L.
Pouvez vous me dire, que je le sache une bonne fois pour toutes, si ChDir peut être utilisé (je sais déjà que ChDrive ne le peut pas) pour mettre un "\\QuelqueChose" en dossier courant ? Les demandeurs oublient chaque fois de me répondre, et je n'ai aucun réseau local à ma disposition pour faire des tests. Au moins je sais que SertCurrentDirectory marche quand il n'existe pas de lettre de lecteur (ou qu'on ne la connait pas), et positionne tout comme étant courant et ne fait pas comme VBA ce distinguo absurde entre lecteur courant et dossiers courants des différents lecteurs.
 
Dernière édition:

Marc L

XLDnaute Occasionnel

Non pas en réseau avec une adresse UNC, monter alors un lecteur …

En fait le besoin de changer le dossier courant est juste nécessaire
pour GetOpenFileName ou GetSaveAsFileName.

Pour les autres c'est inutile en incluant l'adresse réseau
comme par exemple pour FileDialog et sa propriété InitialFileName

 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 962
Membres
103 066
dernier inscrit
bobfils