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

Ouvrir obligatoirement un fichier Excel avec xlDialogOpen

5 réponses
Avatar
Kikoolol
Bonjour et voici mon problème :

Je souhaite à partir d'un bouton d'une UserForm ouvrir un fichier excel afin
d'importer des données sur la feuille qui contient la macro.
J'utilise la commande xlDialogOpen mais le soucis vient du fait que je
trouve pas le moyen d'obliger l'utilisateur à n'ouvrir que des fichiers excel.
Existe t il un procédé, soit en imposant l'ouverture d'un *.xls, soit en
affichant un message d'erreur à l'utilisateur qui tente d'ouvrir un fichier
doc ou html par ce biais.

En espérant avoir été assez clair sur mon problème, merci de vos réponses!

5 réponses

Avatar
RENAUD Eric
Bonjour,
Tu peux essayer avec
monfichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")
Workbooks.Open Filename:=monfichier
"Kikoolol" a écrit dans le message de
news:
Bonjour et voici mon problème :

Je souhaite à partir d'un bouton d'une UserForm ouvrir un fichier excel
afin
d'importer des données sur la feuille qui contient la macro.
J'utilise la commande xlDialogOpen mais le soucis vient du fait que je
trouve pas le moyen d'obliger l'utilisateur à n'ouvrir que des fichiers
excel.
Existe t il un procédé, soit en imposant l'ouverture d'un *.xls, soit en
affichant un message d'erreur à l'utilisateur qui tente d'ouvrir un
fichier
doc ou html par ce biais.

En espérant avoir été assez clair sur mon problème, merci de vos réponses!


Avatar
Kikoolol
J'ai deja testé cette methode est le problème vient du fait que si je
"m'amuse" à ouvrir un fichier ayant le meme nom que ma feuille (exemple
ouvrir un fichier "classeur 1" alors que mon fichier s'appelle deja "classeur
1"), la macro plante... d'ou l'utilisation du xlDialogOpen.

Merci quand meme pour ta réponse!



Bonjour,
Tu peux essayer avec
monfichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")
Workbooks.Open Filename:=monfichier
"Kikoolol" a écrit dans le message de
news:
Bonjour et voici mon problème :

Je souhaite à partir d'un bouton d'une UserForm ouvrir un fichier excel
afin
d'importer des données sur la feuille qui contient la macro.
J'utilise la commande xlDialogOpen mais le soucis vient du fait que je
trouve pas le moyen d'obliger l'utilisateur à n'ouvrir que des fichiers
excel.
Existe t il un procédé, soit en imposant l'ouverture d'un *.xls, soit en
affichant un message d'erreur à l'utilisateur qui tente d'ouvrir un
fichier
doc ou html par ce biais.

En espérant avoir été assez clair sur mon problème, merci de vos réponses!







Avatar
RENAUD Eric
Bonjour,
Tu peux essayer le code suivant :
Sub OuvreXLS()
Dim LongFilename As String
ClasseurOpen = ActiveWorkbook.Name
ChDrive "C:"
ChDir "C:Excel"
LongFilename = Application.GetOpenFilename("Fichiers Excel (*.xls),
*.xls", , "Ouvrir le fichier 2003XX_Indic._Log._Qual._Deutsch_Connect.xls
...")
If LongFilename = "Faux" Then
Exit Sub
Else
MyNewClasseur = Shortfilename(LongFilename)
End If
If MyNewClasseur = ClasseurOpen Then
Resp = MsgBox("Vous ne pouvez pas ouvrir un classeur avec le même
nom que celui qui est déjà ouvert. " & vbCr & "Recommencez l'opération.",
vbOKOnly + vbCritical, "Ouverture de classeur")
Exit Sub
Else
Workbooks.Open Filename:=LongFilename
End If
End Sub

Function Shortfilename(LongFilename As String) As String
For i = Len(LongFilename) To 1 Step -1
If Mid(LongFilename, i, 1) = "" Then Exit For
Next
Shortfilename = Mid(LongFilename, i + 1, Len(LongFilename))
End Function


"Kikoolol" a écrit dans le message de
news:
Bonjour et voici mon problème :

Je souhaite à partir d'un bouton d'une UserForm ouvrir un fichier excel
afin
d'importer des données sur la feuille qui contient la macro.
J'utilise la commande xlDialogOpen mais le soucis vient du fait que je
trouve pas le moyen d'obliger l'utilisateur à n'ouvrir que des fichiers
excel.
Existe t il un procédé, soit en imposant l'ouverture d'un *.xls, soit en
affichant un message d'erreur à l'utilisateur qui tente d'ouvrir un
fichier
doc ou html par ce biais.

En espérant avoir été assez clair sur mon problème, merci de vos réponses!


Avatar
Kikoolol
Ok merci je vais essayer!


Bonjour,
Tu peux essayer le code suivant :
Sub OuvreXLS()
Dim LongFilename As String
ClasseurOpen = ActiveWorkbook.Name
ChDrive "C:"
ChDir "C:Excel"
LongFilename = Application.GetOpenFilename("Fichiers Excel (*.xls),
*.xls", , "Ouvrir le fichier 2003XX_Indic._Log._Qual._Deutsch_Connect.xls
....")
If LongFilename = "Faux" Then
Exit Sub
Else
MyNewClasseur = Shortfilename(LongFilename)
End If
If MyNewClasseur = ClasseurOpen Then
Resp = MsgBox("Vous ne pouvez pas ouvrir un classeur avec le même
nom que celui qui est déjà ouvert. " & vbCr & "Recommencez l'opération.",
vbOKOnly + vbCritical, "Ouverture de classeur")
Exit Sub
Else
Workbooks.Open Filename:=LongFilename
End If
End Sub

Function Shortfilename(LongFilename As String) As String
For i = Len(LongFilename) To 1 Step -1
If Mid(LongFilename, i, 1) = "" Then Exit For
Next
Shortfilename = Mid(LongFilename, i + 1, Len(LongFilename))
End Function


"Kikoolol" a écrit dans le message de
news:
Bonjour et voici mon problème :

Je souhaite à partir d'un bouton d'une UserForm ouvrir un fichier excel
afin
d'importer des données sur la feuille qui contient la macro.
J'utilise la commande xlDialogOpen mais le soucis vient du fait que je
trouve pas le moyen d'obliger l'utilisateur à n'ouvrir que des fichiers
excel.
Existe t il un procédé, soit en imposant l'ouverture d'un *.xls, soit en
affichant un message d'erreur à l'utilisateur qui tente d'ouvrir un
fichier
doc ou html par ce biais.

En espérant avoir été assez clair sur mon problème, merci de vos réponses!







Avatar
Kikoolol
Ta macro marche tres bien! Merci de m'avoir enlevé cette épine du pied!

MERCI BCP Eric!


Ok merci je vais essayer!


Bonjour,
Tu peux essayer le code suivant :
Sub OuvreXLS()
Dim LongFilename As String
ClasseurOpen = ActiveWorkbook.Name
ChDrive "C:"
ChDir "C:Excel"
LongFilename = Application.GetOpenFilename("Fichiers Excel (*.xls),
*.xls", , "Ouvrir le fichier 2003XX_Indic._Log._Qual._Deutsch_Connect.xls
....")
If LongFilename = "Faux" Then
Exit Sub
Else
MyNewClasseur = Shortfilename(LongFilename)
End If
If MyNewClasseur = ClasseurOpen Then
Resp = MsgBox("Vous ne pouvez pas ouvrir un classeur avec le même
nom que celui qui est déjà ouvert. " & vbCr & "Recommencez l'opération.",
vbOKOnly + vbCritical, "Ouverture de classeur")
Exit Sub
Else
Workbooks.Open Filename:=LongFilename
End If
End Sub

Function Shortfilename(LongFilename As String) As String
For i = Len(LongFilename) To 1 Step -1
If Mid(LongFilename, i, 1) = "" Then Exit For
Next
Shortfilename = Mid(LongFilename, i + 1, Len(LongFilename))
End Function


"Kikoolol" a écrit dans le message de
news:
Bonjour et voici mon problème :

Je souhaite à partir d'un bouton d'une UserForm ouvrir un fichier excel
afin
d'importer des données sur la feuille qui contient la macro.
J'utilise la commande xlDialogOpen mais le soucis vient du fait que je
trouve pas le moyen d'obliger l'utilisateur à n'ouvrir que des fichiers
excel.
Existe t il un procédé, soit en imposant l'ouverture d'un *.xls, soit en
affichant un message d'erreur à l'utilisateur qui tente d'ouvrir un
fichier
doc ou html par ce biais.

En espérant avoir été assez clair sur mon problème, merci de vos réponses!