Que ce soit l'une ou l'autre elles donnent une erreur "membre de méthode ou données introuvables" ...
Quelque chose qui devrait être si simple !
Donc, aucune solution ...
Que ce soit l'une ou l'autre elles donnent une erreur "membre de méthode ou données introuvables" ...
Quelque chose qui devrait être si simple !
Donc, aucune solution ...
Si mais vous ne voulez pas vous comprendre le modèle objet des formulaire, je vois ce que vous voulez faire, mais avant tout vous devez comprendre !
Un objet n'est pas une simple chaîne de caractères...
Vous avez un formulaire principal, qui contient un objet container (Cadre), qui lui-même contient un second formulaire.
Par exemple dans votre code :
Vous faite référence au contrôle Cadre, en effet "SourceObject" permet de donner le nom du formulaire qui sera gérer dans le contrôle Cadre,
Code : Sélectionner tout - Visualiser dans une fenêtre à part afrm.SourceObject
mais plus loin vous mettez
qui lui fait référence à un bouton contenu dans l'objet formulaire "devis et factures" contenu dans Cadre
Code : Sélectionner tout - Visualiser dans une fenêtre à part afrm.BtnImprimer.Caption
Vous essayez à la fois de taper dans 2 contrôles de nature différente, c'est comme si vous vouliez changer la couleur d'un bouton et d'une liste en faisant référence à un seul objet
Donc je vous ai donc aiguillé sur 2 fonctions, qui vous donnent d'une part la référence au contenant (Cadre) et l'autre qui vous donne référence au contenu.
Ensuite...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Function Contenant() As SubForm Set SousFormulaire = Application.Forms("Menu").Controls("Cadre") End Function
Sinon vous pourriez créer un module de classe, pour "fabriquer" vous même un objet reprenant les propriétés des deux objets qui vous intéressent et interagir avec eux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Function CreerFacture() Dim sfCadre As SubForm Dim frmCible as Form Set sfCadre = Contenant() 'AFrm pour formulaire Cadre sfCadre.SourceObject = "devis et factures" 'Applique à sfCadre le formulaire "Devis et facture" set frmCible = Application.Forms(sfCadre.SourceObject) 'Fait référence au formulaire contenu dans sfCadre frmCible.Caption = "Création d'un nouveau document Facture" frmCible.Controls("TypeDoc").Value = "FACTURE" frmCible.Controls("EtatDocument").Value = "Création" .... End Function
Mais ça c'est un autre boulot (mais très intéressant pour comprendre), car il faudra recenser toutes les propriétés des deux objets avec lesquelles vous vous voudrez interagir, et les "mapper" avec le bon objet.
Pour débuter avec cette piste : http://fauconnier.developpez.com/art...neral/classes/
Cordialement,
Pierre.
Dans un monde passablement absurde, il y a quelque chose qui ne l'est pas, c'est ce qu'on peut faire pour les autres.
André Malraux
Ce message vous a aidé ? alors
Votre souci est résolu ? alors
Merci beaucoup pour votre aide, je me mets au travail et vous tiens au courant
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager