Losange et sablier sur VBA

julienen Messages postés 9 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 16 mars 2008 - 29 févr. 2008 à 20:50
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 2 mars 2008 à 12:01
Bonjour

je cherche a faire un losangeet un sablier à partir de pyramides  comme dessiné plus haut sur vba donc j'ai d'abord fait deux procedures :

La premiere j'obtiens une pyramide donc le sommet est dirigé vers le haut :

Sub colorierPyramide(ByVal ligneSommet As Integer, _
                     ByVal colSommet As Integer, _
                     ByVal n As Integer, _
                     ByVal c As Long)
Dim x As Integer
x = 0
Do Until x = n - 1
colorierSegment ligneSommet + x, colSommet - x, 2 * x + 1, c
x = x + 1
Loop
End Sub

et la deuxieme dont le sommet est dirigé vers le  bas :

Sub colorierPyramideBas(ByVal ligneSommet As Integer, _
                        ByVal colSommet As Integer, _
                        ByVal n As Integer, _
                        ByVal c As Long)
Dim x As Integer
x = 0
Do Until x = n + 1
colorierSegment ligneSommet - x, colSommet - x, 2 * x + 1, c
x = x + 1
Loop

End Sub

Le problème c'est que je n'arrive pas à superposer les deux pyramides pour obtenir un sablier et un losange ?

Julien

6 réponses

julienen Messages postés 9 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 16 mars 2008
1 mars 2008 à 14:54
Bonjour
j'ai essayé une procédure pour le losange mais ç me renvoit un parallélogramme :

Sub colorierLosange(ByVal ligneSommet As Integer, _
                    ByVal colSommet As Integer, _
                    ByVal n As Integer, _
                    ByVal c As Long)
                   
                    Dim x As Integer
x = 0
Do Until x = 2 * n
colorierSegment ligneSommet + x, colSommet - x, 2 * n - 1, c
x = x + 1
Loop
End Sub

et pour le sablier ça marche pas non plus :(

Sub colorierSablier(ByVal ligneIntersection As Integer, _
                    ByVal colIntersection As Integer, _
                    ByVal n As Integer, _
                    ByVal c As Long)
                   
                    Dim x As Integer
x = 0
Do Until x = n + 1
colorierSegment ligneIntersection - x, colIntersection + x, 2 * n - 1, c
x = x + 1
Loop
                                   
End Sub

Merci de m'aider à voir ce qui ne marche pas

Julien
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 mars 2008 à 17:19
ce topic est encore sur la page d'accueil, pas la peine de reposter
doublon supprimé
0
julienen Messages postés 9 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 16 mars 2008
2 mars 2008 à 08:43
Personne n'a une idée sur comment faire marcher mes fonctions ?
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 mars 2008 à 09:04
.... beh tu appelles en boucle une procédure ou une fonction non-fournie (colorierSegment), y'a pas grand chose à dire
0

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

Posez votre question
julienen Messages postés 9 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 16 mars 2008
2 mars 2008 à 09:52
j'ai oublié de mentionner la fonction "non fournie"

Sub colorierSegment(ByVal ligne As Integer, _
                    ByVal colonne As Integer, ByVal l As Integer, ByVal c As Long)
colorierRectangle ligne, colonne, ligne, colonne + l - 1, c




End Sub

(une fonction qui colorie un segment ie une ligne de case )

le hic  est que mes deux fonctions ne me renvoient pas un sablier ni un losange
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 mars 2008 à 12:01
... qui appelle colorierRectangle ......
0
Rejoignez-nous