OVH Cloud OVH Cloud

Calcul de la surface d'un Shape

23 réponses
Avatar
Marc
Bonjours a tous et a toutes
Je cherche =E0 calculer la surface en pixel d'un Shape en VB=20
sous Excel

Cela fait pas mal de temps que je cherche et je ne trouve=20
pas...

Par avance merci.
Marc

3 réponses

1 2 3
Avatar
garnote
Salut Daniel,

SUPER !

Beaucoup plus intéressant et parlant ainsi.
Avec des formules de combinatoire,
il faut procéder cas par cas.
Voici deux exemples :

Sub Change_n_1_2_5()
n = InputBox("Montant:")
MsgBox Round((n + 4) ^ 2 / 20)
End Sub

Sub Change_n_1_2_3()
n = InputBox("Montant:")
MsgBox Round((n + 3) ^ 2 / 12)
End Sub

Il faut dire que la première édition de mon recueil
de problèmes date de 1964. Il faudrait que tu fasses
un corrigé VBA de ces 100 problèmes !!!

Mais tous ces problèmes ne peuvent pas se résoudre
par programmation, je crois ! Deux exemples :

1. Quel est le nombre maximal de régions que l'on
peut obtenir en découpant un plan avec n droites ?
2. Quel est le nombre maximal de régions que l'on
peut obtenir en découpant l'espace avec n plans ?

Il est «amusant» de vérifier, pour de petites valeurs de n,
(ça se complique assez rapidement, surtout en 3D !)
que les réponses suivantes sont exactes :

1. ( n^2 + n + 2 ) / 2
2. ( n^3 + 5*n +6 ) / 6

??? : Représenter les 56 régions du plan que l'on peut
obtenir avec 10 droites, dans un graphique Excel.

Et vive le Tour de France. Je l'ai en direct de 9h à 11h 30.

;-)

Serge


"Daniel.M" a écrit dans le message de news:

Salut Serge,

Ce sont des délires combinatoires qui mènent à ce résultat.


En espérant que mon code te soit plus 'parlant'. ;-))
C'est relativement court (<10 lignes) à cause de la solution récursive.

Ça vaut pour les entiers (par juste 100): Tu changes le premier argument à
NCombine.

' ****************
' Daniel M. Juillet 2003
Dim Billets As Variant

Sub Test_NCombine()
Billets = Array(1, 2, 5, 10, 20, 50)
MsgBox NCombine(100, 6) ' 6 = nombre d'éléments dans Billets
End Sub


Public Function NCombine(ByVal n%, ByVal panier%) As Long
Dim i%
If panier <= 2 Then
If panier = 2 Then NCombine = Int(n / Billets(1)) + 1&
Exit Function
End If

For i = Int(n / Billets(panier - 1)) To 0 Step -1
NCombine = NCombine + NCombine(n - i * Billets(panier-1), panier-1)
Next i
End Function
' ****************

Salutations,

Daniel M.




Avatar
Robert Dezan
Bonsoir Marc,
Bon, je crois que je vais te faire une diffusion en avant-première dans ta BAL
perso d'un petit programme de calcul de périmètre et surface de formes libres
sur lequel je travaille par intermitence depuis un mois.
Le calcul se fait sur le principe d'un calcul topographique qui permet de faire
les calculs en coordonnées cartésiennes de chaque point (node) d'une forme libre
(les shapes prédéfinies ne sont pas concernées car elles n'ont pas d'autre
définitions que la hauteur et la largeur).
Le programme permet de calculer les périmètres et surfaces dans d'autres
échelles (mm, cm, m, ...)
A l'ouverture, le programme se masque et si il n'y a pas déjà une feuille
contenant des formes libre, il créé une nouvelle feuille de calcul et attends
que l'on créé une forme.
Voir le menu en haut à droite, l'aide intégrée et les feuilles de détail qui
sont masquées.
ATTENTION : ce programme étant encore en gestation , je ne peux pas encore
garantir son exactitude
Pour les utilisateurs qui serait interressé, veuillez demander à Marc de vous le
faire suivre car pour le mois qui vient je ne suis pas encore sur de pouvoir me
connecter au MPFE
Cordiales salutations
Robert Dezan

"Marc" a écrit dans le message de news:
094201c34b9c$032fee00$
Bonjours a tous et a toutes
Je cherche à calculer la surface en pixel d'un Shape en VB
sous Excel

Cela fait pas mal de temps que je cherche et je ne trouve
pas...

Par avance merci.
Marc
Avatar
Jean-François Aubert
Salut Marc, Robert,

Ce petit programme m'intéresse.
Si l'un de vous peut me le faire parvenir, un grand merci.

supprimer les 5 premiers caractères
à
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Robert Dezan" a écrit dans le message de
news:uX0%
Bonsoir Marc,
Bon, je crois que je vais te faire une diffusion en avant-première dans ta BAL
perso d'un petit programme de calcul de périmètre et surface de formes libres
sur lequel je travaille par intermitence depuis un mois.
Le calcul se fait sur le principe d'un calcul topographique qui permet de faire
les calculs en coordonnées cartésiennes de chaque point (node) d'une forme libre
(les shapes prédéfinies ne sont pas concernées car elles n'ont pas d'autre
définitions que la hauteur et la largeur).
Le programme permet de calculer les périmètres et surfaces dans d'autres
échelles (mm, cm, m, ...)
A l'ouverture, le programme se masque et si il n'y a pas déjà une feuille
contenant des formes libre, il créé une nouvelle feuille de calcul et attends
que l'on créé une forme.
Voir le menu en haut à droite, l'aide intégrée et les feuilles de détail qui
sont masquées.
ATTENTION : ce programme étant encore en gestation , je ne peux pas encore
garantir son exactitude
Pour les utilisateurs qui serait interressé, veuillez demander à Marc de vous le
faire suivre car pour le mois qui vient je ne suis pas encore sur de pouvoir me
connecter au MPFE
Cordiales salutations
Robert Dezan

"Marc" a écrit dans le message de news:
094201c34b9c$032fee00$
Bonjours a tous et a toutes
Je cherche à calculer la surface en pixel d'un Shape en VB
sous Excel

Cela fait pas mal de temps que je cherche et je ne trouve
pas...

Par avance merci.
Marc




1 2 3