Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 30/06/2009, 17h03   #1
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2008
Messages : 87
Points : 28
Points : 28
Par défaut Le choix d'un répertoire par défaut dans un GetOpenFileName fonctionne imparfaitement

Bonjour,

Ce post :
http://www.developpez.net/forums/d47...topenfilename/

correspond exactement à ce que je recherche. Mais, (parce que s'il n'y avait pas de mais j'aurais surement pas remis un post), chez moi, la première solution m'ouvre bien une fenetre pour que je choississe le fichier dans le dossier spécifié, mais par contre, ça ne m'ouvre pas le dit-fichier par la suite ?! Et en plus, si je veux ouvrir un fichier, ça me met une msgbox avec le chemin, et si je mets annuler, ça me met une message avec FAUX écrit à l'interieur.

Donc, revoici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub test()
 
'Selectionne un disque
ChDrive "C:"
'Selectionne un repertoire sur ce disque
ChDir "C:\Documents and Settings\Default User\Mes documents"
 
'La boite de dialogue s'affiche avec le repertoire selectionne
Msgbox Application.GetOpenFilename
 
End sub
Vous avez une idée ?

Merci beaucoup !

Secco
Secco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2009, 17h51   #2
Futur Membre du Club
 
Inscription : août 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 56
Points : 17
Points : 17
Bonjour, Secco,
L'instruction GetOpenFileName fait ce qu'elle doit faire, c'est à dire faire apparaître la fenêtre d'ouverture de fichier.
Je ne suis pas un expert, mais dans ton code, tu ne précises pas le nom du fichier à ouvrir.
J'ai trouvé quelque chose ici :
http://vb.developpez.com/faqvba/?page=3.2#BookOpen


En espérant t'avoir aidé.

Bonne journée

Chordially
chordially est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2009, 19h35   #3
Membre Expert
 
Avatar de Krovax
 
Inscription : juillet 2008
Messages : 1 889
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juillet 2008
Messages : 1 889
Points : 1 937
Points : 1 937
Bonjour,
Comme ce la viens a été dit Getopenfilename se contente de donner le chemin du fichier. C'est son boulot pas plus pas moins (d'ailleur de légère notion d'anglais le signale, obtenir le nom du fichier)
(par contre regarde l'aide car tu peux chosir le type de fichier affiché) Regarde l'aide sur la fonction


Code :
1
2
3
4
5
6
dim chemin as string
chemin=Application.GetOpenFilename("Fichier excel (*.xl*), *.xl*, Fichier excel 97-2003 (*.xls), *.xls, Tous (*.*),*.*") 'ouvre fichier excel 07 et 97-2003
if chemin="Faux" then 
msgbox "vous avez annulé"
exit sub
endif
Ensuite a toi d'ouvrir le fichier que tu as choisis, comme tu ne précise pas le type de fichier on ne peux pas t'aider d'avantage
Krovax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2009, 22h45   #4
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2008
Messages : 87
Points : 28
Points : 28
Merci pour vos réponses

Donc, ça signifie que même si ça m'ouvre la fenêtre de "choix d'un fichier à ouvrir", même si l'utilisateur choisit un fichier dans le dossier, ça ne l'ouvrira pas si je ne spécifie pas le type de fichier qu'il doit ouvrir ?

Je n'ai pas mon document sous les yeux, mais demain matin je m'y remets et je vous redis la suite.

A+

Secco
Secco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2009, 07h04   #5
Membre Expert
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 279
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 279
Points : 2 377
Points : 2 377
Salut, GetOpenFilename [F1]
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2009, 08h34   #6
Membre Expert
 
Avatar de Krovax
 
Inscription : juillet 2008
Messages : 1 889
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juillet 2008
Messages : 1 889
Points : 1 937
Points : 1 937
Getopenfilename n'ouvre pas les fichier elle te donne juste le nom du fichier en question, pas plus pas moins. Spécifié le type de fichier ne fait que aider l'utilisateur a trouver ce qu'il cherche.

C'est a toi de dire comment ouvrir le fichier qui a été choisi.
(d'ailleur tu n'est pas obligé de vouloir l'ouvrir tu peux vouloir le supprimer ou le déplacer, c'est pour ca que ca ne serait vraiment pas pratique que cela ouvre le fichier en question a chaque fois)

Comme le dit kiki29 de manière très synthétique. Regarde ce que dit l'aide cela t'aidera a comprendre (faut dire que c'est son boulot )
Krovax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2009, 08h56   #7
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2008
Messages : 87
Points : 28
Points : 28
Bonjour

Et voilà ma solution.

Code :
 Workbooks.Open Filename:=Application.GetOpenFilename("Excel Files (*.xls),*.xls")
Merci à tous pour votre aide.

Secco
Secco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2009, 09h59   #8
Membre Expert
 
Avatar de aalex_38
 
Inscription : septembre 2007
Messages : 1 570
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 1 570
Points : 1 709
Points : 1 709
Bonjour à tous,


Ton code fonctionne, mais que se passe-t-il si la personne clique sur annulé ?

Pour le tester tu peux faire :


Code :
1
2
3
4
5
6
7
Dim QuelFichier As Variant
QuelFichier = Application.GetOpenFilename("Excel Files (*.xls),*.xls")
If VarType(QuelFichier) = vbBoolean Then
      Exit Sub
End If
 
Workbooks.Open Filename:= QuelFichier
__________________
aalex_38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 20h47.


 
 
 
 
Partenaires

Hébergement Web