Getopenfilename & répertoire

P

Pat78

Guest
Bonsoir le forum,

Grace au concours de Thierry (merci encore), j'utilise Getopenfilename dans une de mes macros.

ChDir 'C:\\Documents and Settings\\Mes documents\\blabla'
FileToRead = Application.GetOpenFilename('Classeurs Excel,*.xls')

Tout marche très bien à mon domicile (XP, Excel 2002), par contre au boulot (Win2000, Excel 2002) le code ne pointe pas systématiquement sur le répertoire voulu. En effet si j'ouvre un autre fichier depuis un autre répertoire C:\\toto\\blabla, Excel garde en mémoire le dernier chemin, et la macro pointe alors sur ce dernier répertoire C:\\toto\\blabla, ignorant ChDir 'C:\\Documents ...

Est ce une pb de version ? Est ce un paramètre à activer ?
Existe-t-il une astuce pour contourner le pb, pour le moment je me contente d'ouvrir une première fois un fichier depuis le répertoire voulu et ensuite d'activer la macro. Pas vraiment super !!!

Merci de votre aide s'il existe une solution.

Patrick
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Pat, le Forum

Essaies comme ceci :

Option Explicit

Sub GetOpenWithDriveChange()
Dim FileToRead  As Variant
Dim TempDrive As String
Dim ThePath As String
Dim UserDir As String
Dim UserDrive As String

UserDrive = Left(CurDir, 1)
'On Mémorise les Paramètres du User
UserDir = CurDir
' idem

TempDrive = 'D'
'le lecteur mappé sur un serveur réseau
ThePath = 'D:\Repertoire\WorkBooks\'
'à ajuster au répertoire contenant tes classeurs

ChDrive TempDrive
ChDir ThePath

FileToRead = Application.GetOpenFilename('Classeurs Excel,*.xls')
If FileToRead = False Then ChDrive UserDrive: ChDir UserDir: Exit Sub

'blah blah blah blah la macro'cro'cro

ChDrive UserDrive
'On remet les paramètres du User
ChDir UserDir
'idem
End Sub

Ceci devrait te dépanner...

Une remarque de Ti :
Pour Eric C, si tu tournes avec Excel XP, va voir du côté de l'objet FileDialog, c'est vraiment très puissant, et on peut définir absolument tout ce qu'on veut dedans. Pour l'utiliser la première fois, fais comme moi : copie les exemples de Microsoft dans un classeur vierge et fais différents tests jusqu'à ce que tu comprennes la philosophie du truc. Ensuite on regrette de devoir le laisser tomber pour revenir à la compatibilité XL 2000.

Mais je ne suis pas sous XP actuelement sur cette bécanne pour te documenter sur 'FileDialog'

Bonne Soirée
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 13/08/2005 23:59
 

ThomasR

XLDnaute Occasionnel
Bonsoir à tous,

super ces infos de Ti_ (merci _Thierry :) )

j'ai testé et si j'avais connus ca avant

alors pour documenté voici l'exemple microsoft qui est tres bien fait

FileDialog, propriété
Voir aussiS'applique àExempleDétailsCette propriété renvoie un objet FileDialog représentant une instance de la boîte de dialogue de fichiers.

expression.FileDialog(fileDialogType)
expression Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.

fileDialogType Argument de type MsoFileDialogTypeobligatoire. Type de la boîte de dialogue de fichiers.

MsoFileDialogType peut être l'une de ces constantes MsoFileDialogType.
msoFileDialogFilePicker Permet à l'utilisateur de sélectionner un fichier.
msoFileDialogFolderPicker Permet à l'utilisateur de sélectionner un dossier.
msoFileDialogOpen Permet à l'utilisateur d'ouvrir un fichier.
msoFileDialogSaveAs Permet à l'utilisateur d'enregistrer un fichier.

Exemple
Dans cet exemple, Microsoft Excel ouvre la boîte de dialogue de fichiers, permettant à l'utilisateur de sélectionner un ou plusieurs fichiers. Une fois ces fichiers sélectionnés, Excel affiche le chemin de chaque fichier dans un message séparé.

Code:
Sub UseFileDialogOpen()

    Dim lngCount As Long

    ' Open the file dialog
    With Application.FileDialog(msoFileDialogOpen) 'le text en bleu est à utiliser dans ces parentheses
        .AllowMultiSelect = True
        .Show

        ' Display paths of each file selected
        For lngCount = 1 To .SelectedItems.Count
            MsgBox .SelectedItems(lngCount)
        Next lngCount

    End With

End Sub

j'ai mis en bleu les expression à changer pour chercher un dossier ou un fichier ou save as

Message édité par: Thomas®, à: 14/08/2005 00:40
 

Discussions similaires

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 378
dernier inscrit
phdrouart