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 !!!
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.
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