Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lancer la recherche d'un fichier puis continuer la macro

10 réponses
Avatar
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:\winnt\explorer.exe", 3)
(mais je souhaite faire l'équivalent de fichier ouvrir)
mais comment reprendre la main après?

10 réponses

Avatar
Michel Gaboly
Bonjour Denis,

Utilise pour cela Application.GetOpenFilename
Avatar
gilbert
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" a écrit dans le message de
news:%
Bonjour Denis,

Utilise pour cela Application.GetOpenFilename


Avatar
denis le breton
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



Avatar
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
Avatar
Pierre CFI [mvp]
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" a écrit dans le message de news:
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


Avatar
Michel Gaboly
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

Avatar
Michel Gaboly
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


Avatar
denis le breton
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" a écrit dans le message de
news:%
Bonjour Denis,

Utilise pour cela Application.GetOpenFilename







Avatar
Michel Gaboly
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" a écrit dans le message de
news:%

Bonjour Denis,

Utilise pour cela Application.GetOpenFilename








--
Cordialement,

Michel Gaboly
www.gaboly.com



Avatar
gilbert
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" a écrit dans le message de
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" a écrit dans le message de
news:%

Bonjour Denis,

Utilise pour cela Application.GetOpenFilename








--
Cordialement,

Michel Gaboly
www.gaboly.com