# VBA - Ein Klassenmodul das Auf Ereignisse in einer Exceltabelle reagiert...



## ToMeFox (21. März 2005)

Hallo!

Ich bin mit objektorientiertem Programmieren gut vertraut, nur in VB(A) ein absoluter Anfänger! Naja... ich wünschte es wäre JAVA!   

Mein Problem:

Ich möchte beim Öffnen einer Arbeitsmappe (oder spätestens bei einer Änderung einer Zelle) auf ein Ereignis reagieren. Ich habe mich durch sämtliche Tutorials bei Microsoft.com durchgeschlagen... Pust... Leider ging mir kein Licht auf. Ich hoffe ihr könnt meinen Lichtschalter finden!

Ich habe ein Klassenmodul angelegt und _Private WithEvents xlApp As Excel.Application_ als Variable angelegt. Danach habe ich die Methode _Private Sub Class_Initialize()_ 
geschrieben... aber ich habe keine Ahnung wer diese aufrufen soll und vor allem wann sie aufgerufen wird!
Ich möchte nur auf das Ereignis reagieren, wenn eine Eingabe in meiner Tabelle vorgenommen wurde (Plausi).  


Bitte gebt mir ein wenig Wissen weiter!

Vielen dank im Vorraus!


----------



## Tetsuya (22. März 2005)

Hi also
Das ist schon etwas länger her.
*Denk kratz*
Es gibt bei VBA eine Projektoption unter der man äh... glaub ich eine Start anweisung eingeben kann. Hab das aber selber noch nicht gemacht.
Die Projektoption findet man oben in Optionsleiste. Möglich dass das auch irgendwo anders drunter zu finden ist als bei Projektoption.
Ich hab VBA auch nicht mehr sonst würde ich nach sehen.

Ich hoffe dir hilfts und ich vertuhe mich nicht mit einem anderen Programm.

mfg Tetsuya


----------



## Tetsuya (22. März 2005)

Hi 
Mir fällt noch was ein du kannst in Exel auch VBA programmieren und das kann man dann einfach mit der tabelle verknüpfen (zum teil ist das schon automatisch) und die Funktionen können automatisch aktiviert werden 
VBA wird in Exel unter Extra ? Makro ?VBA oder man drück ALT F11
vielleicht ist das einfacher

gruß Tetsuya


----------



## hotschen (22. März 2005)

@ Tetsuya:
zur Info: VBA = Visual Basic for Application und ist in MS Office enthalten.

Zur Frage:
Geh in den VBA Editor und gib unter 'Diese Arbeitsmappe' (Doppelklick) folgendes ein:


```
Private Sub Workbook_Open()
    'Hier dein Code
End Sub
```

Die Anweisungen innerhalb dieser Prozedur werden beim Öffnen ausgeführt.

Willst du eine Zellen auf Änderung überprüfen gib folgedes ein:


```
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     'Hier dein Code
End Sub
```

Einzelne Zellen kannst du ja dann mit 'If target.address="$c$2"' abfragen.

Gruß hotschen


----------



## ToMeFox (22. März 2005)

Vielen dank!


----------

