lancer la recherche d'un fichier puis continuer la macro

Le
denis le breton
Meilleurs vieux à tous et à meilleurs jeunes à toutes.

Je cherche comment dans u ne macro
1) rechercher un fichier, son emplacement et son nom sera choisi par
l'utilisateur
2) continuer ma macro qui consiste à travailler sur le fichier choisi

Comment faire ?
je sais lancer l'explorateur x = Shell("C:winntexplorer.exe", 3)
(mais je souhaite faire l'équivalent de fichier ouvrir)
mais comment reprendre la main après?

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Michel Gaboly
Le #1924566
Bonjour Denis,

Utilise pour cela Application.GetOpenFilename
gilbert
Le #1924559
Bonjour

Essaye ceci

Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogOpen).Show ("c:zaza.xls") 'pour proposer l
'ouverture de zaza.xls
End Sub

ou encore dans un module

Function ChoixDossier(Chemin)
Dim objShell, objFolder
Msg = "Voici votre répertoire:"
Set objShell = CreateObject("Shell.Application")

'Cette ligne affiche répertoire et fichiers du répertoire.
'Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H4000, Chemin)

'Cette Ligne = pour afficher seulement les répertoires
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H1&, Chemin)
On Error Resume Next
Chemin = objFolder.parentFolder.ParseName(objFolder.Title).Path & ""
ChoixDossier = Chemin

ledos = Chemin & ""
Msgbox ledos
End Function

Sub OuvrirRépertoire()
Dim CheminEtFichier As String
LeDossier = ThisWorkbook.Path
CheminEtFichier = ChoixDossier(LeDossier)

End Sub


salutations

Gilbert

"Michel Gaboly" news:%
Bonjour Denis,

Utilise pour cela Application.GetOpenFilename


denis le breton
Le #1924558
En effet cela me lance le requester mais !!! soudain rien
l'aide sur la fonction dit
Affiche la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé
par l'utilisateur sans réellement ouvrir les fichiers.
je cherche à ouvrir le fichier pour lui appliquer un traitement

Je te remercie de l'aide mais cela ne répond complètement à ma question
Merci
denis


Bonjour Denis,

Utilise pour cela Application.GetOpenFilename



Michel Gaboly
Le #1924555
Désolé j'ai du faire une fausse manip ; ma réponse a été tronquée ;-((


La voici en entier :

Bonjour Denis,

Utilise pour cela Application.GetOpenFilename

Cela affiche le dialogue d'ouverture, et permet à l'utilisateur de
choisir un fichier, sans que celuii-ci soit effectivement ouvert.

C'est la suite du traitement qui ouvre le fichier après une éventuelle
vérification : si l'utilisateur est censé ouvrir un fichier nommé
VentesXXX et choisit autre chose, tu peux afficher un message et
réafficher le dialogue d'ouverture.

Voici un exemple de code

Sub Ouvre()
Dim DocChoisi
DocChoisi = Application.GetOpenFilename
If DocChoisi = False Then
' Traitement si le bouton Annuler a été choisi
Else
' Vérification éventuelle que le fichier choisi est
conforme à ce qui est attendu
'
' Ouverture
Workbooks.Open DocChoisi
End If
End Sub
Pierre CFI [mvp]
Le #1924551
oui, ta bréve et incompléte réponse m'avait étonné :o)

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Michel Gaboly"
Désolé j'ai du faire une fausse manip ; ma réponse a été tronquée ;-((


La voici en entier :

Bonjour Denis,

Utilise pour cela Application.GetOpenFilename

Cela affiche le dialogue d'ouverture, et permet à l'utilisateur de
choisir un fichier, sans que celuii-ci soit effectivement ouvert.

C'est la suite du traitement qui ouvre le fichier après une éventuelle
vérification : si l'utilisateur est censé ouvrir un fichier nommé
VentesXXX et choisit autre chose, tu peux afficher un message et
réafficher le dialogue d'ouverture.

Voici un exemple de code

Sub Ouvre()
Dim DocChoisi
DocChoisi = Application.GetOpenFilename
If DocChoisi = False Then
' Traitement si le bouton Annuler a été choisi
Else
' Vérification éventuelle que le fichier choisi est
conforme à ce qui est attendu
'
' Ouverture
Workbooks.Open DocChoisi
End If
End Sub


Michel Gaboly
Le #1924547
Salut Pierre,

Cela me ressemle en effet assez peu ;-))

Tous mes voeux pour 2005.



oui, ta bréve et incompléte réponse m'avait étonné :o)




--
Cordialement,

Michel Gaboly
www.gaboly.com

Michel Gaboly
Le #1924544
Pour compléter ma dernière réponse,

Tu ne le sais peut-être pas, mais Google permet de faire des recherches
dans les news.

Pour cela, dans la page d'accueil, clique sur "Groupes", puis
éventuellement dans la nouvelle page affichée, sur "Groupes - Recherche
avancée", qui te permet par exemple de limiter ta recherche au seul
microsoft.public.fr.excel

Tu y trouveras des trésors. Voici un exemple pour GetOpenFilename :

http://www.google.fr/groups?hl=fr&lr=&ie=ISO-8859-1&q=GetOpenFilename&btnG=Rechercher&meta=group%3Dmicrosoft.public.fr.excel


Par ailleurs, pour info, il existe également une méthode pour
l'enregistrement, GetSaveAsFileName.


En effet cela me lance le requester mais !!! soudain rien
l'aide sur la fonction dit
Affiche la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé
par l'utilisateur sans réellement ouvrir les fichiers.
je cherche à ouvrir le fichier pour lui appliquer un traitement

Je te remercie de l'aide mais cela ne répond complètement à ma question
Merci
denis



Bonjour Denis,

Utilise pour cela Application.GetOpenFilename





--
Cordialement,

Michel Gaboly
www.gaboly.com


denis le breton
Le #1924536
Encore merci tout cela fonctionne à mon gré.
Et c'est aussi pour cela que ce genre de groupe de discussion m'est plus
profitable que google.
Trop d'info tue l'info.
Toutefois ne jetons pas la pierre et ne tombons pas de l'excès inverse.
Trop utiliser les newsgroups lasse les MVP à réecrire ce qui l' a été.
Trop utiliser les moteurs de recherches tue les newsgroups.

Allez assez philosophé. Encore merci de toutes les bonnes volontés qui
dépannent de modestes utilisateurs par leur savoir, leur diponibilté et leur
gentillesse.

Et sans vouloir abuser, je continuerai à vous solliciter ô MVP.
Denis


Bonjour

Essaye ceci

Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogOpen).Show ("c:zaza.xls") 'pour proposer l
'ouverture de zaza.xls
End Sub

ou encore dans un module

Function ChoixDossier(Chemin)
Dim objShell, objFolder
Msg = "Voici votre répertoire:"
Set objShell = CreateObject("Shell.Application")

'Cette ligne affiche répertoire et fichiers du répertoire.
'Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H4000, Chemin)

'Cette Ligne = pour afficher seulement les répertoires
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H1&, Chemin)
On Error Resume Next
Chemin = objFolder.parentFolder.ParseName(objFolder.Title).Path & ""
ChoixDossier = Chemin

ledos = Chemin & ""
Msgbox ledos
End Function

Sub OuvrirRépertoire()
Dim CheminEtFichier As String
LeDossier = ThisWorkbook.Path
CheminEtFichier = ChoixDossier(LeDossier)

End Sub


salutations

Gilbert

"Michel Gaboly" news:%
Bonjour Denis,

Utilise pour cela Application.GetOpenFilename







Michel Gaboly
Le #1924531
Re,

Quand j'ai évoqué Google, il s'agissait de retrouver des fils de
discussion de ce forum sur un sujet donné. Ce n'est pas Google ou ce
genre de forum, mais les archives de CE forum via Google.

Je te conseille vivement d'essayer, tu y trouveras vraiment beaucoup de
choses.

Quand à l'emploi de CreateObject("Shell.Application"), c'est moins
universel que GetOpenFileName, car limité aux versions Windows :
pourquoi utiliser un outil spécifique à une plate-forme quand des outils
plus généraux existent ?


Encore merci tout cela fonctionne à mon gré.
Et c'est aussi pour cela que ce genre de groupe de discussion m'est plus
profitable que google.
Trop d'info tue l'info.
Toutefois ne jetons pas la pierre et ne tombons pas de l'excès inverse.
Trop utiliser les newsgroups lasse les MVP à réecrire ce qui l' a été.
Trop utiliser les moteurs de recherches tue les newsgroups.

Allez assez philosophé. Encore merci de toutes les bonnes volontés qui
dépannent de modestes utilisateurs par leur savoir, leur diponibilté et leur
gentillesse.

Et sans vouloir abuser, je continuerai à vous solliciter ô MVP.
Denis



Bonjour

Essaye ceci

Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogOpen).Show ("c:zaza.xls") 'pour proposer l
'ouverture de zaza.xls
End Sub

ou encore dans un module

Function ChoixDossier(Chemin)
Dim objShell, objFolder
Msg = "Voici votre répertoire:"
Set objShell = CreateObject("Shell.Application")

'Cette ligne affiche répertoire et fichiers du répertoire.
'Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H4000, Chemin)

'Cette Ligne = pour afficher seulement les répertoires
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H1&, Chemin)
On Error Resume Next
Chemin = objFolder.parentFolder.ParseName(objFolder.Title).Path & ""
ChoixDossier = Chemin

ledos = Chemin & ""
Msgbox ledos
End Function

Sub OuvrirRépertoire()
Dim CheminEtFichier As String
LeDossier = ThisWorkbook.Path
CheminEtFichier = ChoixDossier(LeDossier)

End Sub


salutations

Gilbert

"Michel Gaboly" news:%

Bonjour Denis,

Utilise pour cela Application.GetOpenFilename








--
Cordialement,

Michel Gaboly
www.gaboly.com



gilbert
Le #1924529
Tout les chemins sont bons le principal c'est d'être contenté de ce que l'
on a créé !!
Bien sur on peut faire aussi comme cela !!

Private Sub CommandButton1_Click()
'Application.GetOpenFilename ' affiche la boîte de dialogue sans ouvrir
Dim FichChoisi
FichChoisi = Application.GetOpenFilename
If FichChoisi = False Then
' Si le bouton Annuler a été choisi
MsgBox "Annulé"
Else
' Ouverture
Workbooks.Open FichChoisi
'vérification du chemin est du fichier choisi
'MsgBox FichChoisi
End If

End Sub

Salutations

Gilbert

"Michel Gaboly" news:
Re,

Quand j'ai évoqué Google, il s'agissait de retrouver des fils de
discussion de ce forum sur un sujet donné. Ce n'est pas Google ou ce
genre de forum, mais les archives de CE forum via Google.

Je te conseille vivement d'essayer, tu y trouveras vraiment beaucoup de
choses.

Quand à l'emploi de CreateObject("Shell.Application"), c'est moins
universel que GetOpenFileName, car limité aux versions Windows :
pourquoi utiliser un outil spécifique à une plate-forme quand des outils
plus généraux existent ?


Encore merci tout cela fonctionne à mon gré.
Et c'est aussi pour cela que ce genre de groupe de discussion m'est plus
profitable que google.
Trop d'info tue l'info.
Toutefois ne jetons pas la pierre et ne tombons pas de l'excès inverse.
Trop utiliser les newsgroups lasse les MVP à réecrire ce qui l' a été.
Trop utiliser les moteurs de recherches tue les newsgroups.

Allez assez philosophé. Encore merci de toutes les bonnes volontés qui
dépannent de modestes utilisateurs par leur savoir, leur diponibilté et
leur


gentillesse.

Et sans vouloir abuser, je continuerai à vous solliciter ô MVP.
Denis



Bonjour

Essaye ceci

Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogOpen).Show ("c:zaza.xls") 'pour
proposer l



'ouverture de zaza.xls
End Sub

ou encore dans un module

Function ChoixDossier(Chemin)
Dim objShell, objFolder
Msg = "Voici votre répertoire:"
Set objShell = CreateObject("Shell.Application")

'Cette ligne affiche répertoire et fichiers du répertoire.
'Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H4000, Chemin)

'Cette Ligne = pour afficher seulement les répertoires
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H1&, Chemin)
On Error Resume Next
Chemin = objFolder.parentFolder.ParseName(objFolder.Title).Path & ""
ChoixDossier = Chemin

ledos = Chemin & ""
Msgbox ledos
End Function

Sub OuvrirRépertoire()
Dim CheminEtFichier As String
LeDossier = ThisWorkbook.Path
CheminEtFichier = ChoixDossier(LeDossier)

End Sub


salutations

Gilbert

"Michel Gaboly" news:%

Bonjour Denis,

Utilise pour cela Application.GetOpenFilename








--
Cordialement,

Michel Gaboly
www.gaboly.com





Poster une réponse
Anonyme