Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 13h05   #1
Débutant
 
Avatar de FCL31
 
Inscription : août 2007
Messages : 672
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : août 2007
Messages : 672
Points : 184
Points : 184
Envoyer un message via MSN à FCL31
Par défaut Ouvrir un UserForm en fonction d'une liste déroulante dans un premier UserForm

Bonjour à tous et bonne année avant tout

Mon problème :
J'ai un UserForm avec une liste déroulante.
En fonction du choix de la liste déroulante je voudrais ouvrir un autre UserForm

Voici ce que j'ai :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub CommandButton1_Click()
 
Dim wrdApp As Object
Dim wrdDoc As Object
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = ActiveDocument
 
With wrdDoc
    .Bookmarks("Type_Contrat").Range.Text = Me.ComboBox1.Value
End With
 
'----------------------------------------------------------------------------
'-------------------Ici je voudrais un truc du style-------------------
    ComboBox1.Hide
'Je me doute que ça ne marche pas car il cherche le UserForm qui s'appelle "ComboBox1"
'-----------------------------------------------------------------------------
 
 
 
End Sub
Comment il faut faire ?
SVP
Merci
FCL31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 20h57   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 317
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 317
Points : 29 214
Points : 29 214
Salut,

Pour ouvrir ou plus précisément afficher, c'est pas Show ??
Hide c'est cacher, donc pile poil le contraire de ce que tu souhaites faire.

Si tu veux éviter certaines erreurs de programmation, il est plus sage d'utiliser le Early Binding et pas le Late Binding

Ton code :

Code :
1
2
3
4
Dim wrdApp As Object
Dim wrdDoc As Object
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = ActiveDocument
Devient :
Code :
1
2
3
4
Dim wrdApp As Word.Application 
Dim wrdDoc As Word.Document
Set wrdApp = New WordApplication
Set wrdDoc = ActiveDocument
Mais si tu ne crées pas un document, ou ouvre un document Word est vide et ton wrdDoc ne contient rien.

Pour ouvrir un autre UserForm :

Code :
1
2
3
Private Sub CommandButton1_Click()
UserForm2.Show
End sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 12h36   #3
Débutant
 
Avatar de FCL31
 
Inscription : août 2007
Messages : 672
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : août 2007
Messages : 672
Points : 184
Points : 184
Envoyer un message via MSN à FCL31
Citation:
Envoyé par Heureux-oli Voir le message
Pour ouvrir ou plus précisément afficher, c'est pas Show ??
Hide c'est cacher, donc pile poil le contraire de ce que tu souhaites faire.
Autant pour moi je le sais en plus.

Citation:
Envoyé par Heureux-oli Voir le message
Si tu veux éviter certaines erreurs de programmation, il est plus sage d'utiliser le Early Binding et pas le Late Binding
Je doit avouer que je connais pas la différence (je sais même pas se que c'est exactement)

Citation:
Envoyé par Heureux-oli Voir le message
Mais si tu ne crées pas un document, ou ouvre un document Word est vide et ton wrdDoc ne contient rien.
Je sais pas trop ce que tu as voulu dire mais en fait j'ouvre un document sur lequel il y a déjà du texte et que je complète ensuite avec des UserForm avec des signets


Citation:
Envoyé par Heureux-oli Voir le message
Pour ouvrir un autre UserForm :

Code :
1
2
3
Private Sub CommandButton1_Click()
UserForm2.Show
End sub
Ca je sais faire (il suffit que je n'inverse pas Hide et Show lol)

ce que je veux c'est que j'ouvre un fichier doc et à l'ouverture, j'ai un UserForm avec une liste déroulante.
L'utilisateur choisit une proposition dans la liste déroulante et en fonction du chois, j'ai un autre UserForm qui s'ouvre.


En fait j'ai deux idées qui sont :
un truc de ce style :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub CommandButton1_Click()
 
Dim wrdApp As Object
Dim wrdDoc As Object
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = ActiveDocument
 
With wrdDoc
    .Bookmarks("Type_Contrat").Range.Text = Me.ComboBox1.Value
End With
 
'----------------------------------------------------------------------------
'-------------------Ici je voudrais un truc du style-------------------
ComboBox1.Value.Show
'Je me doute que ça marche pas car il cherche le UserForm qui s'appelle "ComboBox1"
'-----------------------------------------------------------------------------
 
End Sub
mais je suis pas vraiment certain que se soit possible

Mon autre idée et de faire un truc du style :
Code :
1
2
3
4
5
6
7
8
9
If Me.ComboBox.Value = "Truc" Then
Truc.Show
Else
If Me.ComboBox.Value = "Machin" Then
Machin.Show
ElseIf Me.ComboBox.Value = "Bidule" Then
Bidule.Show
Else
....
mais un peu long

Je voudrais savoir ce qui est possible ou pas et quelle est la meilleure solution ??
Comment ferais-tu ??
FCL31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 19h05   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 317
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 317
Points : 29 214
Points : 29 214
Salut,

Essaie ce document ?
Fichiers attachés
Type de fichier : zip UserForm.zip (15,2 Ko, 4 affichages)
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 14h59   #5
Débutant
 
Avatar de FCL31
 
Inscription : août 2007
Messages : 672
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : août 2007
Messages : 672
Points : 184
Points : 184
Envoyer un message via MSN à FCL31
Merci beaucoup Heureux-oli

Pour le moment j'ai pas trop le temps de m'en occuper mais je te tiens au courant quand je pourrai.



Merci.
FCL31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h44.


 
 
 
 
Partenaires

Hébergement Web