VB6 VBA Excel

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 16 juil. 2007 à 20:38
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 16 juil. 2007 à 23:26
Salut..

Je ne sais pas si je suis à la bonne place pour poser cette question... Mais enfin.. je prends une chance...

J'ai codé un petit programme en VB6 et je veux faire a peu pres le meme type de prog. sous Excel. Sans utiiliser ADO.

Je fais une erreur dans la commande d'Excel et je ne sais pas c'est quoi...

Je vous explique les résultat que j'ai sous VB6


<colgroup>
<col width=\"223\" />
<col width=\"80\" />
</colgroup>

----

X1,
285332,642,

----

X2,
285329,186,

----

Y1,
5075891,18,

----

Y2,
5075887,18


    dX = X2 - X1
    dY = Y2 - Y1
   'Formule pour connaître le cadrant dans lequel se trouve les coordonnées
    If dX >= 0 And dY >= 0 Then
        aTan1 = Atn(dX / dY)
    ElseIf dX >= 0 And dY < 0 Or dX < 0 And dY < 0 Then
        aTan1 = Atn(dX / dY) + frmCalcul.Pi
    ElseIf dX < 0 And dY >= 0 Then
        aTan1 = Atn(dX / dY) + (2 * frmCalcul.Pi)
    End If

    aTan2 = aTan1 * frmCalcul.dbRadian    'Convertir les Radians en Degrés décimaux

    aTan2 = 220,8226

Jusqu'ici tout va tres bien... Sauf quand j'essais de faire la formule dans Excel : aTan1 = Atn(dX / dY) + frmCalcul.Pi on dirais que ca fonctionne pas.... J'arrive au résultat 75,9821

La formule est la suivante sous Excel
=SI(ET(K$10<0;K11<0);ATAN((K$10/K$11)+3,14159265358979);"")

K10 = dX
K11 = dY

J'ai comme résultat 1,3261
Ce nombre en radian donne en degré décimal: 75,9821

Quelqu'un peut voir où est mon erreur dans Excel....

P.S. mon code sous VB6 est nickel....

Merci de votre aide.

5 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 juil. 2007 à 20:43
"La formule est la suivante sous Excel
=SI(ET(K$10<0;K11<0);ATAN((K$10/K$11)+3,14159265358979);"") "




et ceci n'est ni du VB, ni du VBA !
C'est une formule Excel.

Ruen ne t'empêche par contre de reprendre dans une macro écrite en VBA le même code que celui que tu avais écrit en VB6
Cela devrait marcher.
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
16 juil. 2007 à 20:47
c'est vrai ok je vais essayer je n'avais pas pensé à ca 

merci

Sauf que c'est pour mettre sur mon iPAQ  je ne suis pas certain que ca va fonctionner mais je vais essayer...

merci
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 juil. 2007 à 20:47
Reste Zen, Jacques, tu viens presque de l'incendier dans l'autre post,ici tout est correct.

Effectivement ce n'est pas du VBA, ni du VB, mais ténat donner qu'il n'y a pas de rubrique spécifique aux formules d'excel, la rubrique VBA reste tout de même la mieux adaptée.

Sinon il y a aussi le forum de Mortalino.
Le lien était dans ma signature, mais comme les signatures merdent tant qu'elles peuvent ici, il n'apparait plus. Mais si quelqu'un l'à qu'il le donne.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 juil. 2007 à 20:58
Bonsoir Casy,

Tu as sans aucun doute raison
(mais je m'interroge vraiment ... comment développer si l'on ignore sous quoi l'on développe ?)

Bon...
Excuse-moi, Jeff...


Voilà le lien :



http://aide-office-vba.monforum.com/


 
0

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

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
16 juil. 2007 à 23:26
Bonsoir,

Ben... si tu veux coder en formule Excel, la partie des formules en VB qui tu présentes il y a une erreur évidente (ou alors tu n'écris pas tout...)

ton code VB

  'Formule pour connaître le cadrant dans lequel se trouve les coordonnées
    If dX >= 0 And dY >= 0 Then
        aTan1 = Atn(dX / dY)
    ElseIf dX >= 0 And dY < 0 Or dX < 0 And dY < 0 Then
        aTan1 = Atn(dX / dY) + frmCalcul.Pi
    ElseIf dX < 0 And dY >= 0 Then   'cette dernière condition est-elle nécessaire ?
        aTan1 = Atn(dX / dY) + (2 * frmCalcul.Pi)
    End If

Ta formule Excel
=SI(ET(K$10<0;K11<0);ATAN((K$10/K$11)+3,14159265358979);"")

Cette formule correspond à la seconde condition : dX >= 0 And dY < 0 Or dX < 0 And dY < 0 Then
d'après le calcul du résultat !! Pourquoi on ne retrouve pas ces conditions ?

je te propose ceci :


SI(ET(K10>0;K11>=0);ATAN(K10/K11);SI(OU(ET(K10>=0;K11<0);ET(K10<0;K11<0));ATAN(K10/K11)+PI();SI(ET(K10<0;K11>=0);ATAN(K10/K11)+2*PI();"")))

Amicalement,
Us.
0
Rejoignez-nous