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

PROBLEME DE DEFINITION DE TYPE - USERFORM contre INPUTBOX

5 réponses
Avatar
julius
Bonjour

Voici mon probl=E8me, en essayant d'=EAtre clair:

J'ai une macro sous word qui importe des tableaux sous excel.
Dans cette macro je d=E9finis 2 variables (Dim XL as Excel.Application)
et (Dim WB as Excel.Workbook)pour pouvoir ouvrir le fichier xls en
question.

Le fichier excel peut varier d'emplacement dans le disque commun, pour
le localiser je demande =E0 l'utilisateur de r=E9pondre =E0 un
questionnaire. Les r=E9ponses permettent de d=E9finir le chemin:

1) les questions sont pos=E9e =E0 l'aide de Inputbox : tout va bien,
l'import se fait normalement

2) Inputbox n'=E9tant pas tr=E8s convivial, j'ai voulu cr=E9er un
userform. Les diff=E9rentes r=E9ponses des combobox, textbox et autres
doivent permettre de trouver le chemin:
=E7a fonctionne jusqu'=E0 ma macro d'import qui plante sur les fameux
(Dim XL et WB) avec comme message d'erreur "type d=E9fini par
l'utilisateur non d=E9fini"????

Est-ce que quelqu'un peut m'expliquer pourquoi le Dim XL et WB passe
tr=E8s bien avec un inputbox et plante avec l'userform?

merci de votre aide

5 réponses

Avatar
ClémentMarcotte
Bonjour,

Pourquoi se couper les cheveux en quatre?

Sub ouvrirdossier()
Set objShell = CreateObject("Shell.Application")
'le troisième paramètre permet de choisir
'la sélection d'un dossier ou d'un fichier (0 ou 1)
'le dernier paramètre permet de choisir le dossier racine
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, flagchoix, Racine)
On Error Resume Next
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
If objFolder.Title = "Bureau" Then
Chemin = "C:WindowsBureau"
End If
If objFolder.Title = "" Then
Chemin = ""
End If

End Sub



"julius" a écrit dans le message de
news:
Bonjour

Voici mon problème, en essayant d'être clair:

J'ai une macro sous word qui importe des tableaux sous excel.
Dans cette macro je définis 2 variables (Dim XL as Excel.Application)
et (Dim WB as Excel.Workbook)pour pouvoir ouvrir le fichier xls en
question.

Le fichier excel peut varier d'emplacement dans le disque commun, pour
le localiser je demande à l'utilisateur de répondre à un
questionnaire. Les réponses permettent de définir le chemin:

1) les questions sont posée à l'aide de Inputbox : tout va bien,
l'import se fait normalement

2) Inputbox n'étant pas très convivial, j'ai voulu créer un
userform. Les différentes réponses des combobox, textbox et autres
doivent permettre de trouver le chemin:
ça fonctionne jusqu'à ma macro d'import qui plante sur les fameux
(Dim XL et WB) avec comme message d'erreur "type défini par
l'utilisateur non défini"????

Est-ce que quelqu'un peut m'expliquer pourquoi le Dim XL et WB passe
très bien avec un inputbox et plante avec l'userform?

merci de votre aide
Avatar
julius
ok merci ça marche
en revanche nouveau probleme
j'ai défini dans le code du userform des variables telles que:
pays = userform1.combobox1.value

pour mon chemin, dans ma macro d'import tableau excel, je veux
récupérer le nom de pays qui aura été choisi par l'utilisateur dans
ma combobox.
donc dans la syntaxe du chemin, à un moment donné j'ai & pays &""
etc...

la macro plante car la variable pays ne prend aucune valeur

est-ce que ça veut dire qu'en dehors du cadre de l'userform, les
variables des controles ne peuvent pas être reprises?

merci encore (je suis assez novice dans l'userform)

Bonjour,

Pourquoi se couper les cheveux en quatre?

Sub ouvrirdossier()
Set objShell = CreateObject("Shell.Application")
'le troisième paramètre permet de choisir
'la sélection d'un dossier ou d'un fichier (0 ou 1)
'le dernier paramètre permet de choisir le dossier racine
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, flagchoix, Raci ne)
On Error Resume Next
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
If objFolder.Title = "Bureau" Then
Chemin = "C:WindowsBureau"
End If
If objFolder.Title = "" Then
Chemin = ""
End If

End Sub



"julius" a écrit dans le message de
news:
Bonjour

Voici mon problème, en essayant d'être clair:

J'ai une macro sous word qui importe des tableaux sous excel.
Dans cette macro je définis 2 variables (Dim XL as Excel.Application)
et (Dim WB as Excel.Workbook)pour pouvoir ouvrir le fichier xls en
question.

Le fichier excel peut varier d'emplacement dans le disque commun, pour
le localiser je demande à l'utilisateur de répondre à un
questionnaire. Les réponses permettent de définir le chemin:

1) les questions sont posée à l'aide de Inputbox : tout va bien,
l'import se fait normalement

2) Inputbox n'étant pas très convivial, j'ai voulu créer un
userform. Les différentes réponses des combobox, textbox et autres
doivent permettre de trouver le chemin:
ça fonctionne jusqu'à ma macro d'import qui plante sur les fameux
(Dim XL et WB) avec comme message d'erreur "type défini par
l'utilisateur non défini"????

Est-ce que quelqu'un peut m'expliquer pourquoi le Dim XL et WB passe
très bien avec un inputbox et plante avec l'userform?

merci de votre aide


Avatar
julius
merci ça marche

mais j'ai un autre problème
j'ai défini dans mon userform une variable pays qui récupère le
choix de l'utilisateur sur la combobox
pays = userform1.combobox1.value

dans la macro d'import des tableaux excel, je me ressers de la variable
pays pour définir le chemin d'accès au fichier xls.

et là ça plante, car apparement la variable pays ne renvoie aucune
valeur

est-ce que les variables de l'userform peuvent être utilisées en
dehors du cadre de l'userform?

merci

Bonjour,

Pourquoi se couper les cheveux en quatre?

Sub ouvrirdossier()
Set objShell = CreateObject("Shell.Application")
'le troisième paramètre permet de choisir
'la sélection d'un dossier ou d'un fichier (0 ou 1)
'le dernier paramètre permet de choisir le dossier racine
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, flagchoix, Raci ne)
On Error Resume Next
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
If objFolder.Title = "Bureau" Then
Chemin = "C:WindowsBureau"
End If
If objFolder.Title = "" Then
Chemin = ""
End If

End Sub



"julius" a écrit dans le message de
news:
Bonjour

Voici mon problème, en essayant d'être clair:

J'ai une macro sous word qui importe des tableaux sous excel.
Dans cette macro je définis 2 variables (Dim XL as Excel.Application)
et (Dim WB as Excel.Workbook)pour pouvoir ouvrir le fichier xls en
question.

Le fichier excel peut varier d'emplacement dans le disque commun, pour
le localiser je demande à l'utilisateur de répondre à un
questionnaire. Les réponses permettent de définir le chemin:

1) les questions sont posée à l'aide de Inputbox : tout va bien,
l'import se fait normalement

2) Inputbox n'étant pas très convivial, j'ai voulu créer un
userform. Les différentes réponses des combobox, textbox et autres
doivent permettre de trouver le chemin:
ça fonctionne jusqu'à ma macro d'import qui plante sur les fameux
(Dim XL et WB) avec comme message d'erreur "type défini par
l'utilisateur non défini"????

Est-ce que quelqu'un peut m'expliquer pourquoi le Dim XL et WB passe
très bien avec un inputbox et plante avec l'userform?

merci de votre aide


Avatar
julius
merci ça marche
mais j'ai un autre pb
j'ai défini une variable dans l'userform pour récupérer le choix de
l'utilisateur dans la combobox: pays= userform1.combobox1.value

dans la macro qui récupère les tableaux excel, je veux me servir de
la valeur que prendra cette variable pays pour définir le fameux
chemin d'accès.
mais lorsque je lance la macro, il n'y a aucune valeur associée à
pays, donc le chemin n'est pas le bon.

est-ce qu'il est possible de se référer à des variables de la
combobox en dehors de l'userform?
merci
Avatar
ClémentMarcotte
Bonjour,

est-ce que ça veut dire qu'en dehors du cadre de l'userform, les
variables des controles ne peuvent pas être reprises?


Sans voir le code, cela devient un peu plus compliqué de répondre. Mais,
d'une manière générale, il faut que l'UserForm reste en mémoire pour
affecter les données à des variables.


"julius" a écrit dans le message de
news: