Makrostart b. Tastatureingabe

Bild

Betrifft: Makrostart b. Tastatureingabe
von: Wolfgang
Geschrieben am: 15.10.2003 11:46:06

Schönen guten Tag zusammen,

schlanke Frage: gibt es in VBA auch einen Befehl bzw. einen Makronamen, wie vergleichsweise 'Workbook_Open()', der benutzt wird, wenn ein Makro in Abhängigkeit von Eintragungen in Zellen ausgeführt werden soll? Beispiel: Ich habe ein Tabellenblatt, in dem ich die Zeiterfassung für jede Menge Tests nachvollziehe. In Abhängigkeit von der Eintragung einer Testnummer z.B. in Spalte A werden dann per SVERWEIS aus einer Gesamtübersicht die Informationen des betreffenden Tests rausgesucht und angezeigt (was für ein Test an welchem Produkt, etc.). Es ergibt sich eine immer größer werdenden Matrix mit zahllosen Formeln.
Ich möchte nun die Daten per Makro online abrufen, wenn eine Eingabe gemacht wird. Es müßte also feststellbar sein, daß eine Eingabe durchgeführt wird und in Abhängikeit davon, was eingegeben wird, werden die Daten an die betreffenden Stellen kopiert. Ich müßte also als Übergabewerte für das Makro wissen, in welcher Zeile und Spalte ein Eintrag gemacht wurde. Und ich müßte das in dem Moment wissen, wo die Zelle geändert wird, damit dann direkt die Daten abgerufen und dahin kopiert werden, wo sie hinsollen.
Ich habe bereits verschiedene Anläufe unternommen, aber leider nichts finden können, das das leisten könnte. Weißt jemand Rat? Wahrscheinlich hängt es eben einfach nur an diesem Makronamen, der bereits existiert, den ich in der Online-Hilfe nur bisher nicht habe finden können. Vorab vielen Dank für Eure Hilfe.

Viele Grüße, Wolfgang.

Bild


Betrifft: AW: Makrostart b. Tastatureingabe
von: Galenzo
Geschrieben am: 15.10.2003 11:55:03

Hallo,

dazu benützt du am besten das Ereignis Worksheet_Change, das bei Änderungen in Zellen ausgelöst wird. Als Parameer "Target" wird hat dieses Ereignis auch die Zelle in der ein Wert geändert wurde.
Dort schreibst du nun deine If..then..-Prüfungen rein. Du mußt also zunächst prüfen, ob die Eingabe in DER Zelle erfolgt ist, die der "Auslöser" sein soll. Anschließend verzweigst du dann weiter - je nach eingegebenem Wert.

Viel Erfolg dabei!


Bild


Betrifft: Danke
von: Wolfgang
Geschrieben am: 15.10.2003 12:16:29

Hallo Galenzo,

hab vielen Dank für die schnelle Antwort. Hatte mir dieses Ereignis auch schon mal angeschaut, war aber an der Target-Problematik gescheitert. Werde es mir nochmal vornehmen und nachschauen, ob ich es nicht doch hinbekomme. Vorerst mal vielen Dank für die Hilfe und noche einen schönen Tag.

Viele Grüße, Wolfgang


Bild


Betrifft: AW: Target =? Range
von: Galenzo
Geschrieben am: 15.10.2003 12:29:49

Die Prüfung, ob ein Wert in eine bestimmte Zelle eingegeben wurde ist eigentlich relativ einfach. So z.B. wird geprüft, ob in Zelle A1 etwas eingegeben wurde:

If Target=Range("A1") then
' hier kommt dann die Verzweigung je nach eingegebenem Wert
End If

Für die Verzweigung nach Zellwert bietet sich z.B. die SELECT CASE - Ánweisung an.


Bild


Betrifft: Ihr seid BOMBIG!!!
von: Wolfgang
Geschrieben am: 15.10.2003 13:44:56

Tada - hätte mir denken können, daß die Lösung supereinfach ist. Nur drauf kommen muß man erst mal. Aber das kommt davon, wenn man sich das alles selbst beibringen muß und die Besonderheiten (vor allem die Möglichkeiten) von VBA gar nicht so genau kennt. Basic ist easy - VBA (eigentlich) auch *grins*

Vielen, vielen Dank für diesen super-hilfreichen Zusatz. Jetzt kann mich eigentlich nichts mehr aufhalten... ;-)

Viele Grüße, Wolfgang


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Makrostart b. Tastatureingabe"