romca
Messages postés48Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 avril 2010
-
11 mars 2009 à 22:29
romca
Messages postés48Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 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"
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 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
romca
Messages postés48Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 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"
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 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 ?
romca
Messages postés48Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
romca
Messages postés48Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 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: "