Pbm sur control outlook

romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010 - 11 mars 2009 à 22:29
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010 - 15 mars 2009 à 22:05
Bonjour,
Voilà j'ai créé un formulaire sous Outlook 2007, pour l'instant de test, avec 2 pages. Je voudrais que la 2ème page disparaisse en actionnant un bouton radio sur la 1ère page.
J'y arrive à la faire avec un bouton simple, mais dès que je veux le faire avec un bouton radio, impossible.
Voici le code vbscript:
Merci.

'-------Variables globales: pour affichage dans la page2 à partir du bouton2 qui est dans la page 1 -----------------------------------------------'
'---- Comment rendre l'objet "objPage" en variable globale ???-----'

'------Test: Le Bouton2 se trouve dans la page 1 et le Champ Texte2 se trouve dans la page2--------'
'------Ok cela fonctionne---------------------'
Sub Bouton2_Click()
   
    Set objPage = Item.GetInspector.ModifiedFormPages("Page2")
    Set objControl = objPage.Controls("Texte2")

    '---test Ok: On écrit "Bonjour Rom2" dans le champ texte sur la page2----'
    objControl.Text = "Bonjour Rom2"
    '---test OK: On cache la page2 après click sur le bouton2----'
    Set objInspector=Item.GetInspector
    objInspector.HideFormPage "Page2"

   
End Sub

'-----Test: Le bouton radio OptionBouton se trouve sur la page1 et agit sur la page 2----'
'------Pas OK ne fonctionne pas---------------------'
Sub OptionBouton1_Change()

    Set objPage2 = Item.GetInspector.ModifiedFormPages("Page2")
    Set objControlPage2 = objPage2.Controls("Texte2")
   
    'Apres changement sur un des 2 boutons radios sur la page1 affiche de "Bonjour Rom2"
    'sur la page 2 '
    objControlPage2.Text = "Bonjour Rom2"
   
End Sub

5 réponses

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
11 mars 2009 à 23:50
Bonjour romca

1) on peut programmer sous Outlook en VBScript ? J'savais pô. Par hasard, tu ferais pas partie du club de ceux qui programment en VBA sans le savoir ?
2) Comment rendre l'objet objPage en variable globale ? Public objPage As Object CQFD
(attention, CQFD ne fait pas partie de l'instruction )
3) dès que je veux le faire avec un bouton radio, impossible -> tsss... impossible n'est pas vbfrançais, tu devrais le savoir ; tu vas te mettre le forum à dos avec des mots pareils !
4) le bouton radio ne ferme pas la page 2 : perso, je ne vois aucun code dans le Sub OptionBouton1_Change() demandant la fermeture de la page 2...
5) en gros, tu veux que le Sub OptionBouton1_Change() fasse la même chose que le Sub Bouton2_Click(). Essaie la méthode économique :

Sub OptionBouton1_Change()
    Call Bouton2_Click()
End Sub

Amicalement
0
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010
12 mars 2009 à 08:52
Salut Orhoena,
1) Oui c'est du vbscript car j'utilise un modèle de formulaire "message" d'Outlook et non un Userform. D'après mes recherches, on ne peut programmer en VBA avec un modèle prédefini Outlook (mesaage, calendar...) 
2) J'ai essayé comme tu m'a dit "Public objPage As Object" mais j'ai une erreur à la compilation "Fin d'instruction attendue ligne:3", justement car je crois qu'il faut du vbscript et non du VBA.
4) Oui c'est vrai le code ne correspond pas mais j'ai remplacé le "HideFormPage" En fait c'était pour autre un essai, sur le Change(), je voulais inscrire le texte "Bonjour rom2" dans un champ "texte2" qui se trouve dans la page 2, cela ne fonctionne pas quand même...
5)  J'ai essayé de mettre le Call et cela ne fonctionna pas non plus. Est-ce la déclaration des boutons qui n'est pas bonne ? Ou la façon d'appeler l'evenement Change() sur le bouton radio ?

Si tu peux encore m'aider....Merci.

'-------Variables globales: pour affichage dans la page2 à partir du bouton2 qui est dans la page 1 -----------------------------------------------'

'---- Comment rendre l'objet "objPage" en variable globale ???-----'

Public objPage As Object
'erreur à la compil'

'------Le Bouton2 se trouve dans la page 1 et le Champ Texte2 se trouve dans la page2--------'

'------Ok cela fonctionne---------------------'

Sub Bouton2_Click()

Set objPage = Item.GetInspector.ModifiedFormPages("Page2")

Set objControl = objPage.Controls("Texte2")

'---test Ok: On écrit "Bonjour Rom2" dans le champ texte sur la page2----'

objControl.Text = "Bonjour Rom2"

'---test OK: On cache la page2 après click sur le bouton2----'

Set objInspector=Item.GetInspector

objInspector.HideFormPage "Page2"

End Sub

'-----Le bouton radio OptionBouton se trouve sur la page1 et agit sur la page 2----'

'------Pas OK ne fonctionne pas---------------------'

Sub Bouton1_Change()

Set objPage2 = Item.GetInspector.ModifiedFormPages("Page2")

Set objControlPage2 = objPage2.Controls("Texte2")

'Apres changement sur un des 2 boutons radios sur la page1 affiche de "Bonjour Rom2"

'sur la page 2 '

'objControlPage2.Text = "Bonjour Rom2"'

Call Bouton2_Click()

End Sub
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
12 mars 2009 à 19:07
Est-ce la déclaration des boutons qui n'est pas bonne ? Ou la façon d'appeler l'evenement Change() sur le bouton radio ?
Est-ce que "Bonjour Rom2" apparaît bien quand tu cliques sur le bouton radio ?
As-tu essayé d'affecter la Sub Bouton2_Click()  au bouton radio ?

@+
0
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010
15 mars 2009 à 18:17
Salut Orohena,
Excuse-moi du retard mais je ne peux pas être tout le temps dessus....
Pour répondre à tes questions:
Est-ce que "Bonjour Rom2" apparaît bien quand tu cliques sur le bouton radio ? Non rien
As-tu essayé d'affecter la Sub Bouton2_Click()  au bouton radio ? Oui mais idem je n'ai rien, on dirais que mon bouton radio n'est même pas reconnu...
Je ne sais plus trop quoi faire....
Voici ma dernère modif avec un test sur la value mais toujours rien. C'est dommage que je ne peux pas t'envoyer de copies d'écrans, cela t'aiderais peut être...

Sub OptionBouton_Change()

If (OptionBouton.Value= True) Then

MsgBox "Test Value true sur Bouton1"

End If

End Sub

Merci,
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010
15 mars 2009 à 22:05
Salut,


Après avoir cherché une aprsè midi entière j'ai trouvé:
En fait l'évenement click ne fonctionne pas sur certains champs créés par l'utilisateur (sur des champs liés), mais dans le cas ou l'on utilise un formulaire outlook pré-installé (Formulaire type Calendar, message....déjà en bibliotheque). Il faut utiliser des evenements "user" spéciaux.
Je donne le lien au cas ou... qui est en anglais mais très instructif !!!
http://www.outlookcode.com/article.aspx?id=38
"On an Outlook form, to react to changes in the values of custom properties, use the CustomPropertyChange event with a Select Case block. It works just like the PropertyChange event shown above: "

Merci.

A+
 


 
0
Rejoignez-nous