mardi 28 février 2012

[Part-2 ] : Travailler avec VBA sous Excel



Je vous fais part de la suite de mes tutoriels sur VBA , cette fois ci , on travaillera sur la mise en place d'un programme qui applique le théorème de THALES , le célèbre théorème qu'on a appliqué durant nos études au collège :p . Pour ce faire , on doit déjà connaître le théorème :p , et après c'est facile de l'appliquer . Je peux vous dire que ça vous servira dans vos applications , par exemple dans cet article , le but est de déterminer la distance (x) (Fig.1) donc, notre fabuleux théorème nous aidera dans cette tâche fastidieuse .. :p :D . En déterminant la distance (X) et en additionnant le point (C) , on aura le point d'intersection entre les deux droites . :D

Pour commencer , je vous joins le petit schéma (Fig.1) , qui nous servira de base pour la programmation .




Après une analyse intensive du schéma :p , on doit :

  • Faire un tri des données où on doit déterminer le premier point négatif et le dernier point positif ;
  • Déterminer la correspondance de ces points en ordonnée.
Maintenant , on doit appliquer cette théorie  :p .

Il faut saisir vos données dans le tableur EXCEL , et après avoir renseigné  le nombre de données ( = nombre de ligne :p ) . On applique la procédure ! .

Sub deterX()
Dim n As Integer
'Le nombre de données ( lignes )
n = Cells(1, 3)
For i = 1 To n
'Lorsqu'on trouve le premier point négatif on sort de la boucle .
If Cells(i, 1) < 0 Then
Cells(5, 5) = Cells(i, 1) ' le dernier point négatif ( )
Cells(5, 6) = Cells(i - 1, 1) ' le dernier point positif (A)
Cells(5, 7) = Cells(i, 2) ' la correspondance du point négatif
Cells(5, 8) = Cells(i - 1, 2) ' la correspondance du point positif
' la distance x : théorème de Thalès
X = (E - C) * ((A - C) / (C - B))
'Détermination du point D , intersection entre les deux courbes
D = X + C
Exit Sub ' dehors :D
End If
Next i
End Sub

J'ai oublié de vous dire un truc  , j'ai rédigé cet article il y a un an et j'ai oublié de le publier ( pourquoi ? , I don't know ) donc ,s'il y a des erreurs dans mon code , j'aimerais bien avoir des retours  :) .

à bientôt pour de nouvelles aventures :) .

 Islem M .