Вы находитесь на странице: 1из 13

MEC2510 Technologies informationnelles en génie mécanique

Programmation VBA et Excel


Cours 8

Luc Baron, Ph.D., ing.


Professeur agrégé
Directeur – Laboratoire CAE-R. Fraser Elliott en modélisation et simulation
Département de génie mécanique

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 1


© Luc Baron, Ph.D., ing., Hiver 2003
Activation des macros VBA dans Excel

Outil/Macro/Sécurité/Moyen

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 2


© Luc Baron, Ph.D., ing., Hiver 2003
Editeur VBA

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 3


© Luc Baron, Ph.D., ing., Hiver 2003
Écrire une procédure VBA

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 4


© Luc Baron, Ph.D., ing., Hiver 2003
Résultat de FormatFichier()

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 5


© Luc Baron, Ph.D., ing., Hiver 2003
Procédure AjouterTotal()

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 6


© Luc Baron, Ph.D., ing., Hiver 2003
Résultat de AjouterTotal()

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 7


© Luc Baron, Ph.D., ing., Hiver 2003
Procédure ÉtatBudget()

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 8


© Luc Baron, Ph.D., ing., Hiver 2003
Résultat de ÉtatBudget()

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 9


© Luc Baron, Ph.D., ing., Hiver 2003
Procédure PiedDePage()

PdePGauche
à corriger!!!

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 10


© Luc Baron, Ph.D., ing., Hiver 2003
Procédure ProcPrinc()

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 11


© Luc Baron, Ph.D., ing., Hiver 2003
Exécution de ProcPrinc()
Exécution de ProcPrinc():
- Outils/Macro/Macros/Classeur.xls!ProcPrinc

Affichage du widget « InputBox() »:


- Répondre dans la boîte de dialogue

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 12


© Luc Baron, Ph.D., ing., Hiver 2003
Procédure MinMaxMatiere()
Public Sub MinMaxMatiere(FeuilSrc, LignSrc, ColSrc, NbVal, FeuilCal,
CelCentreX, CelCentreY, CelMinMatiere, CelMaxMatiere)
' Initialisation des variables
cx = Worksheets(FeuilCal).Range(CelCentreX).Value
cy = Worksheets(FeuilCal).Range(CelCentreY).Value
x = Worksheets(FeuilSrc).Cells(LignSrc, ColSrc).Value - cx
y = Worksheets(FeuilSrc).Cells(LignSrc, ColSrc + 1).Value - cy
rayMax = Sqr(x ^ 2 + y ^ 2) ' Rayon au maximum de matiere
'(Donc rayon le plus petit, dans le cas de notre trou)
rayMin = rayMax ' Rayon au minimum de matiere (Donc rayon le plus
' grand, dans le cas de notre trou)
For i = 1 To NbVal - 1
x = Worksheets(FeuilSrc).Cells(LignSrc + i, ColSrc).Value - cx
y = Worksheets(FeuilSrc).Cells(LignSrc + i, ColSrc + 1).Value - cy
rayon = Sqr(x ^ 2 + y ^ 2)
If rayon < rayMax Then rayMax = rayon
If rayon > rayMin Then rayMin = rayon
Next i
' Stocke les résultats dans les cellules
Worksheets(FeuilCal).Range(CelMinMatiere).Value = rayMin
Worksheets(FeuilCal).Range(CelMaxMatiere).Value = rayMax
End Sub

MEC2510 – Technologie informationnelle en génie mécanique – Cour 7: VBA et Excel 13


© Luc Baron, Ph.D., ing., Hiver 2003

Вам также может понравиться