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

ouvrir un dossier et choisir fichier par macro (aide problème macro)

5 réponses
Avatar
alroussel
Bonjour à tous,

J'ai un dossier dans lequel se trouvent des fichiers excel.
Je voudrais par macro que l'utilisateur choisisse un fichier et qu'il
l'ouvre dans excel.
Il y a quelque temps, en cosultant vos réponses aux questions posées je
croyais avoir trouver mon bonheur et avait garder cette solution en réserve.
Mais voilà, lorsque je lance cette macro, jusqu'au choix, tout marche bien,
puis ensuite, il s'affiche un message d'erreur suivant:
- erreur d'execution -2147024894(80070002)'
- la méthode "BrowseForFolder" de l'objet "ISchellDispatch4" a échoué
et là ... je suis planté (mes petites connaissances ne suffisent plus)

je vous remercie d'avance pour votre aide

Voilà la macro
(je précise le chemin des fichiers et c:\laser\export)
et la macro est tel qu'elle figurait et les petits ( ' ) c'est moi qui ai
modifié suivant ce que je comprenait mais ....

Sub Choixfichier()
Choix = ChoixDossierFichier("c:\laser\export")
If Choix = "" Then MsgBox "aucun fichier choisi" _
Else: Workbooks.Open FileName:=Choix
'Else: MsgBox Choix
'MonFichier = ActiveWorkbook.Name
'Workbooks.Open FileName:=ChoixDossierFichier
End Sub

Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = CurDir
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function

5 réponses

Avatar
Michel HOLDERITH
Salut,
teste :

Sub essai()
ChDir "C:WINDOWSDESKTOP"
Filt = "Fichier Mic (*.mic),*.mic,"
Title = "Selectionnez un Fichier (Explan) a Importer : "
Filename = Application.GetOpenFilename(FileFilter:=Filt, Title:=Title)
If Filename = False Then
MsgBox "aucun fichier choisi"
Exit Sub
End If
FichOuv = Filename
Workbooks.OpenText Filename:=FichOuv, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse
End Sub

Dis moi si ca te convient.
@+
Michel.

"alroussel" wrote in message
news:3fa748fb$0$10432$
Bonjour à tous,

J'ai un dossier dans lequel se trouvent des fichiers excel.
Je voudrais par macro que l'utilisateur choisisse un fichier et qu'il
l'ouvre dans excel.
Il y a quelque temps, en cosultant vos réponses aux questions posées je
croyais avoir trouver mon bonheur et avait garder cette solution en
réserve.

Mais voilà, lorsque je lance cette macro, jusqu'au choix, tout marche
bien,

puis ensuite, il s'affiche un message d'erreur suivant:
- erreur d'execution -2147024894(80070002)'
- la méthode "BrowseForFolder" de l'objet "ISchellDispatch4" a échoué
et là ... je suis planté (mes petites connaissances ne suffisent plus)

je vous remercie d'avance pour votre aide

Voilà la macro
(je précise le chemin des fichiers et c:laserexport)
et la macro est tel qu'elle figurait et les petits ( ' ) c'est moi qui ai
modifié suivant ce que je comprenait mais ....

Sub Choixfichier()
Choix = ChoixDossierFichier("c:laserexport")
If Choix = "" Then MsgBox "aucun fichier choisi" _
Else: Workbooks.Open FileName:=Choix
'Else: MsgBox Choix
'MonFichier = ActiveWorkbook.Name
'Workbooks.Open FileName:=ChoixDossierFichier
End Sub

Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = CurDir
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function




Avatar
alroussel
Michel,
Je te remercie pour ton aide
Ta macro marche bien mais juste un petit problème
Mes fichiers *.xls se trouvent toujours dans le dossier c:LaserExport
Dans ta macro j'ai donc modifié le ChDir "C:WINDOWSDESKTOP" en
ChDir "C:LaserExport" et pour le Filt j'ai remplacé les Mic en Xls
Cependant lorsque je lance la macro elle ouvre la boite de dialogue sur
C:Mes Documents et je dois faire une manip pour retrouver
C:laserExport et pour des utilisateurs peu expérimentés je voudrais pas
cela.

Peus-tu me donner une explication ; pourquoi excel ne suit pas la commande
ChDir et qu'elle modif je dois faire

merci d'avance

Alain

"Michel HOLDERITH" <#nospam# a écrit dans le message de news:

Salut,
teste :

Sub essai()
ChDir "C:WINDOWSDESKTOP"
Filt = "Fichier Mic (*.mic),*.mic,"
Title = "Selectionnez un Fichier (Explan) a Importer : "
Filename = Application.GetOpenFilename(FileFilter:=Filt, Title:=Title)
If Filename = False Then
MsgBox "aucun fichier choisi"
Exit Sub
End If
FichOuv = Filename
Workbooks.OpenText Filename:=FichOuv, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse
End Sub

Dis moi si ca te convient.
@+
Michel.

"alroussel" wrote in message
news:3fa748fb$0$10432$
Bonjour à tous,

J'ai un dossier dans lequel se trouvent des fichiers excel.
Je voudrais par macro que l'utilisateur choisisse un fichier et qu'il
l'ouvre dans excel.
Il y a quelque temps, en cosultant vos réponses aux questions posées je
croyais avoir trouver mon bonheur et avait garder cette solution en
réserve.

Mais voilà, lorsque je lance cette macro, jusqu'au choix, tout marche
bien,

puis ensuite, il s'affiche un message d'erreur suivant:
- erreur d'execution -2147024894(80070002)'
- la méthode "BrowseForFolder" de l'objet "ISchellDispatch4" a échoué
et là ... je suis planté (mes petites connaissances ne suffisent plus)

je vous remercie d'avance pour votre aide

Voilà la macro
(je précise le chemin des fichiers et c:laserexport)
et la macro est tel qu'elle figurait et les petits ( ' ) c'est moi qui
ai


modifié suivant ce que je comprenait mais ....

Sub Choixfichier()
Choix = ChoixDossierFichier("c:laserexport")
If Choix = "" Then MsgBox "aucun fichier choisi" _
Else: Workbooks.Open FileName:=Choix
'Else: MsgBox Choix
'MonFichier = ActiveWorkbook.Name
'Workbooks.Open FileName:=ChoixDossierFichier
End Sub

Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = CurDir
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function








Avatar
Frédéric Sigonneau
Bonsoir,

Essaye en t'assurant que tu es bien sur le bon lecteur :

Sub test()
ChDrive "C"
ChDir "C:laserexport"
MsgBox Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls")
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Michel,
Je te remercie pour ton aide
Ta macro marche bien mais juste un petit problème
Mes fichiers *.xls se trouvent toujours dans le dossier c:LaserExport
Dans ta macro j'ai donc modifié le ChDir "C:WINDOWSDESKTOP" en
ChDir "C:LaserExport" et pour le Filt j'ai remplacé les Mic en Xls
Cependant lorsque je lance la macro elle ouvre la boite de dialogue sur
C:Mes Documents et je dois faire une manip pour retrouver
C:laserExport et pour des utilisateurs peu expérimentés je voudrais pas
cela.

Peus-tu me donner une explication ; pourquoi excel ne suit pas la commande
ChDir et qu'elle modif je dois faire

merci d'avance

Alain

"Michel HOLDERITH" <#nospam# a écrit dans le message de news:

Salut,
teste :

Sub essai()
ChDir "C:WINDOWSDESKTOP"
Filt = "Fichier Mic (*.mic),*.mic,"
Title = "Selectionnez un Fichier (Explan) a Importer : "
Filename = Application.GetOpenFilename(FileFilter:=Filt, Title:=Title)
If Filename = False Then
MsgBox "aucun fichier choisi"
Exit Sub
End If
FichOuv = Filename
Workbooks.OpenText Filename:=FichOuv, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse
End Sub

Dis moi si ca te convient.
@+
Michel.

"alroussel" wrote in message
news:3fa748fb$0$10432$
Bonjour à tous,

J'ai un dossier dans lequel se trouvent des fichiers excel.
Je voudrais par macro que l'utilisateur choisisse un fichier et qu'il
l'ouvre dans excel.
Il y a quelque temps, en cosultant vos réponses aux questions posées je
croyais avoir trouver mon bonheur et avait garder cette solution en
réserve.

Mais voilà, lorsque je lance cette macro, jusqu'au choix, tout marche
bien,

puis ensuite, il s'affiche un message d'erreur suivant:
- erreur d'execution -2147024894(80070002)'
- la méthode "BrowseForFolder" de l'objet "ISchellDispatch4" a échoué
et là ... je suis planté (mes petites connaissances ne suffisent plus)

je vous remercie d'avance pour votre aide

Voilà la macro
(je précise le chemin des fichiers et c:laserexport)
et la macro est tel qu'elle figurait et les petits ( ' ) c'est moi qui
ai


modifié suivant ce que je comprenait mais ....

Sub Choixfichier()
Choix = ChoixDossierFichier("c:laserexport")
If Choix = "" Then MsgBox "aucun fichier choisi" _
Else: Workbooks.Open FileName:=Choix
'Else: MsgBox Choix
'MonFichier = ActiveWorkbook.Name
'Workbooks.Open FileName:=ChoixDossierFichier
End Sub

Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = CurDir
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function










Avatar
Clément Marcotte
Bonjour,

Ces erreurs sont liées à OLE Automation.

Tu peux toujours jeter un oeil là-dessus:

http://support.microsoft.com/default.aspx?scid=kb;fr;186063




"alroussel" a écrit dans le message de
news:3fa748fb$0$10432$
Bonjour à tous,

J'ai un dossier dans lequel se trouvent des fichiers excel.
Je voudrais par macro que l'utilisateur choisisse un fichier et
qu'il

l'ouvre dans excel.
Il y a quelque temps, en cosultant vos réponses aux questions posées
je

croyais avoir trouver mon bonheur et avait garder cette solution en
réserve.

Mais voilà, lorsque je lance cette macro, jusqu'au choix, tout
marche bien,

puis ensuite, il s'affiche un message d'erreur suivant:
- erreur d'execution -2147024894(80070002)'
- la méthode "BrowseForFolder" de l'objet "ISchellDispatch4" a
échoué

et là ... je suis planté (mes petites connaissances ne suffisent
plus)


je vous remercie d'avance pour votre aide

Voilà la macro
(je précise le chemin des fichiers et c:laserexport)
et la macro est tel qu'elle figurait et les petits ( ' ) c'est moi
qui ai

modifié suivant ce que je comprenait mais ....

Sub Choixfichier()
Choix = ChoixDossierFichier("c:laserexport")
If Choix = "" Then MsgBox "aucun fichier choisi" _
Else: Workbooks.Open FileName:=Choix
'Else: MsgBox Choix
'MonFichier = ActiveWorkbook.Name
'Workbooks.Open FileName:=ChoixDossierFichier
End Sub

Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = CurDir
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function




Avatar
alroussel
bonnjour,
merci à vous deux, cela marche maintenant

Alain Roussel

"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Essaye en t'assurant que tu es bien sur le bon lecteur :

Sub test()
ChDrive "C"
ChDir "C:laserexport"
MsgBox Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls")
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Michel,
Je te remercie pour ton aide
Ta macro marche bien mais juste un petit problème
Mes fichiers *.xls se trouvent toujours dans le dossier c:LaserExport
Dans ta macro j'ai donc modifié le ChDir "C:WINDOWSDESKTOP" en
ChDir "C:LaserExport" et pour le Filt j'ai remplacé les Mic en Xls
Cependant lorsque je lance la macro elle ouvre la boite de dialogue sur
C:Mes Documents et je dois faire une manip pour retrouver
C:laserExport et pour des utilisateurs peu expérimentés je voudrais
pas


cela.

Peus-tu me donner une explication ; pourquoi excel ne suit pas la
commande


ChDir et qu'elle modif je dois faire

merci d'avance

Alain

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:



Salut,
teste :

Sub essai()
ChDir "C:WINDOWSDESKTOP"
Filt = "Fichier Mic (*.mic),*.mic,"
Title = "Selectionnez un Fichier (Explan) a Importer : "
Filename = Application.GetOpenFilename(FileFilter:=Filt, Title:=Title)
If Filename = False Then
MsgBox "aucun fichier choisi"
Exit Sub
End If
FichOuv = Filename
Workbooks.OpenText Filename:=FichOuv, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True, _



Comma:úlse, Space:úlse, Other:úlse
End Sub

Dis moi si ca te convient.
@+
Michel.

"alroussel" wrote in message
news:3fa748fb$0$10432$
Bonjour à tous,

J'ai un dossier dans lequel se trouvent des fichiers excel.
Je voudrais par macro que l'utilisateur choisisse un fichier et
qu'il




l'ouvre dans excel.
Il y a quelque temps, en cosultant vos réponses aux questions posées
je




croyais avoir trouver mon bonheur et avait garder cette solution en
réserve.

Mais voilà, lorsque je lance cette macro, jusqu'au choix, tout
marche




bien,
puis ensuite, il s'affiche un message d'erreur suivant:
- erreur d'execution -2147024894(80070002)'
- la méthode "BrowseForFolder" de l'objet "ISchellDispatch4" a
échoué




et là ... je suis planté (mes petites connaissances ne suffisent
plus)





je vous remercie d'avance pour votre aide

Voilà la macro
(je précise le chemin des fichiers et c:laserexport)
et la macro est tel qu'elle figurait et les petits ( ' ) c'est moi
qui




ai
modifié suivant ce que je comprenait mais ....

Sub Choixfichier()
Choix = ChoixDossierFichier("c:laserexport")
If Choix = "" Then MsgBox "aucun fichier choisi" _
Else: Workbooks.Open FileName:=Choix
'Else: MsgBox Choix
'MonFichier = ActiveWorkbook.Name
'Workbooks.Open FileName:=ChoixDossierFichier
End Sub

Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = CurDir
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function