pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
18 sept. 2005 à 15:11
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
25 oct. 2005 à 12:02
Bonjour!
Je souhaite créer des dynamiquement des shapes via une procédure : pour cela voilà ce que j'ai fait indexé mon objet Shape1 :
- Dans ma page principale :
Call CreerPalette(Nb, Shape1)
- Dans mon module :
Sub CreerPalette(ByVal Nb As Integer, ByRef MonShape As Shape)
For i = 1 To Nb
Call Load(MonShape(i))
MonShape(i).Visible = True
Next
End Sub
Je ne comprend pourquoi il me met le message :
"Type incompatible".
Merci de votre aide.
A+.
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 18 sept. 2005 à 16:32
Bonjour,
Essaie cette méthode
Private Sub Form_Load()
Dim I
'Positionne le contrôle Shape
Shape1(0).Move 0, 100, 700, 300
' Crée les autres boutons.
For I = 1 To 3
' Crée un bouton.
Load Shape1(I)
' Place et dimensionne le contrôle
Shape1(I).Move I * 700, 100, 600, 300
Shape1(1).Top = 500
' Affiche le contrôle
Shape1(I).Visible = True
Shape1(1).BorderColor = vbRed
Shape1(0).Shape = 2
Next I
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 18 sept. 2005 à 23:08
Merci pour la réponse.
Je sais déjà faire ce que tu viens de me montrer.
Mais là, je souhaite vraiment créer mes shapes via une procédure se
trouvant dans un module. Référe-toi à mon premier post qui montre que
je sépare le code de mon "Form1" qui appelle la procédure et celui du
"Module" qui contient la procédure.
Si tu as une solution ou que quelqu'un comprend bien ce que je souhaite, merci pour votre solution!!!
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 19 sept. 2005 à 06:31
Bonjour,
Rien ne t'empêches de placer cette procédure dans un module et l'appeler depuis ta Form.
Dans un Module.
Public Sub CréerShape()
Dim I
'Positionne le contrôle Shape
Form1.Shape1(0).Move 0, 100, 700, 300
' Crée les autres shapes.
For I = 1 To 3
' Crée un bouton.
Load Form1.Shape1(I)
' Place et dimensionne le contrôle
Form1.Shape1(I).Move I * 700, 100, 600, 300
Form1.Shape1(1).Top = 500
' Affiche le contrôle
Form1.Shape1(I).Visible = True
Form1.Shape1(1).BorderColor = vbRed
Form1.Shape1(0).Shape = 2
Next I
End Sub
'Dans le module de la Form.
Private Sub Form_Load()
Call CréerShape
End Sub
jpleroisse
Vous n’avez pas trouvé la réponse que vous recherchez ?
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 19 sept. 2005 à 08:55
Oui mais le truc est que je souhaite que l'objet "shape" soit en paramètre dans la procédure pour pouvoir l'utiliser ultérieument dans plusieurs feuilles.
Ainsi, ma procédure pourra être appelée de n'importe quelle feuille si je passe en paramètre : Form1.Shape1 ou Form2.Shape1 ou Form3.Shape1 .....
J'espère avoir été clair.
A bientôt.
Merci pour ton aide.
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 25 oct. 2005 à 12:02
Bonjour!
Voilà un petit moment que j'avais posté ce message et j'ai de nouveau besoin de vous car à l'époque j'avais créé ma procédure de la façon suivante dans un module:
sub ColorierShape(Cellules as Objet)
for i=0 to 9
Cellules(i).backcolor=&HFF8080
next
endsub
Comme vous pouvez le voir dans ma procédure, j'ai indéxé mes shapes.
Dans mon programme principale, je faisais :
ColorierShape(MesCellules)
Maintenant, je souhaite modifier ma procédure par :
sub ColorierShape(Cellules as Shape)
mais ça ne marche pas car quand je met :
ColorierShape(MesCellules)
il me met l'erreur "Type incompatible"
Auriez-vous une idée de comment mettre un shape indéxé en paramètre et comment l'appeler?
Merci de votre réponse.
A bientôt.