Title: LOG
1Couplage TRNSYS - Excel/VBA Jochen Wriske
Markus Oertker, Université Aachen Werner
Keilholz, CSTB 8 Mars 2004 Sophia Antipolis
2Programmation de Composants en VBA
- Principe
- On utilise le Visual Basic embarqué dans Excel
- Un nouveau TYPE (le TYPE 62) fait la liaison avec
Excel - Création dun projet
- 1. Création dun tableau Excel contenant les
calculs (formules Excel ou programme Basic) - 2. Création dun projet de simulation normal,
en ajoutant un Type 62
3Programmation en VBADe quoi a-t-on besoin ?
- Soit
- TRNSYS 15 et
- Digital Visual Fortran 6.6 et
- Excel
- Soit
- TRNSYS 15 et
- Une TRNLIB.DLL contenant le TYPE 62
- Excel
- Soit
- TRNSYS 16 (Mai 2004) et
- Excel
Pas besoin de compilateur !
4Composants en VBASchéma
Soit formules Excel ( sin(C8) ), soit macros
VBA (Function MyType (Arg1, Arg2,..))
paramètre
5Composants en VBAUtilisation de léditeur VBA
dExcel
Macros VBA
Shift-F11
6Programmation en VBACaractéristiques
- Jusquà 10 entrées chacun
- Jusquà 10 sorties chacun
- Jusquà 20 tableurs Excel dans la même simulation
(!) - à consommer avec modération
- Excel peut être visible ou non
- Permet des graphiques animés en mode visible
- Très rapide en mode invisible
7Programmation en VBAConfiguration du TYPE 62
4 Paramètres
1. Nombre dentrées
2. Nombre de sorties
3. Excel visible (oui/non)
4. Fichier du tableau Excel (en tant que
commentaire)
1-10 entrées / sorties
8Programmation en VBAAvantages
- Excel existe sur 99 des ordinateurs Windows
- Grand nombre de programmeurs Basic
- Facile à apprendre
- Facile à mettre en uvre
- Pas de compilation il suffit de copier un
fichier .XLS - Deboggage avec outils Microsoft, comme tout
programme VBA - Utilisation de toutes les fonctionnalités dExcel
- Graphes (en temps réel !)
- Bases de données, tables dynamiques
- Connexion vers tous les outils bureautiques de
Microsoft (Word, Access, Powerpoint, )
9Programmation en VBAComment ça marche ? (1/2)
- Le type 62 fait appel à un concept inclus dans
Windows le COM (Component Object Model) - Permet de faire communiquer des composants
(parties dun programme) via une sorte de
protocole - Indépendant du langage de programmation
Composant
COM
TYPE 62
Client
Serveur
10Programmation en VBAComment ça marche ? (2/2)
- Le type 62 déclenche une Macro Excel dénommé
TRNSYS (doit être définie dans la feuille) - La macro transfert les valeurs de TRNSYS vers des
cellules Excel (et vice versa) en utilisant des
noms Excel (Insérer/Nom/Définir sous Excel)
Inp1, Inp2, Inp3, (pour les entrées) et Out1,
Out2, Out3, (pour les sorties) - Il suffit de faire une copie de la feuille
fournie en exemple et dajouter son propre
programme
Sub TRNSYS(Optional Input1 As Variant, _
Optional Input2 As Variant, _
Optional Input3 As Variant, _ ... If Not
IsMissing(Input1) Then Names.Item("Inp1").RefersT
oRange Input1 Else GoTo GoOn If Not
IsMissing(Input2) Then Names.Item("Inp2").RefersT
oRange Input2 Else GoTo GoOn If Not
IsMissing(Input3) Then Names.Item("Inp3").RefersT
oRange Input3 Else GoTo GoOn GoOn ... End
Sub
nom de la cellule
première entrée
11Démonstration