Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Letzte aktive Zelle

Letzte aktive Zelle
08.01.2007 16:23:25
Florian
Hallo Leute,
ich habe eine Funktion als Modul in Exel VBA geschrieben. Hierbei übergebe ich von Excel mehrere Argumente an VBA. Ändert sich eines dieser Argumente, so wird die Funktion wie immer automatisch berechnet. Kann ich irgendwie rausfinden aus welcher Zelle oder wenigstens Zeile die übergebenen Argumente stammen?
Bsp.:
Zelle A1 enthält den Wert 1, A3 enthält 5
Zelle B1 enthält den Wert 3, A3 enthält 7
in Zelle A5 und B5 steht mein
Funktionsabruf:
=Gewicht(A1;A3) bzw. =Gewicht(B1;B3)
Folgende Funktion
Public

Function Gewicht(M#,N#) as Double
Gewicht = M + N
End Function

Wenn ich jetzt eine Zelle bspw. A1 auf 9 ändere und dann der Maus aus der aktiven zelle A1 durch klicken auf bspw Zelle B9 herausspringe, dann rechnet das Programm ja die Funktion Gewicht für Zeile A neu durch, wenn ich aber activecell herauslese kommt Zeile B heraus, denn ich bin ja mit der Maus in Zelle B9 gesprungen.
Wer weiß wie ich aus VBA heraus feststellen kann, in welcher Zeile das von mir übergebene Argument steht bzw. für welche Zeile er meine Funktion neu rechnet?
Danke für hoffentlich viele Antworten und Gruss Flo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.Caller oT
08.01.2007 16:25:15
Kurt
k
AW: Letzte aktive Zelle
08.01.2007 16:50:42
Daniel
Hallo
du könntets folgendes machen, falls das mit dem Application.Caller nicht funktioniert
diese Methode funktioniert auf jeden Fall, wenn du die Funktion wie eine Normale Funktion in Excel verwendest.
- du definierst eine global gültige Objektvariable (z.B. "Public Zelle as Range"
- du schreibst im Codebereich vom Sheet folgedes eventgesteuertes Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set Zelle = Target
End Sub

jetzt wird bei jeder Änderung der gänderte Zellbereich in die Variable ZELLE abgelegt.
diese Variable kannst du dann innerhalb deiner Funktion ganz normal abfragen und auswerten.
Gruß, Daniel
Anzeige
AW: Letzte aktive Zelle
09.01.2007 08:09:59
Florian
Vielen Dank für die Antworten. Habe beide ausprobiert und es funktionieren beide wunderbar.
Danke Flo
AW: Letzte aktive Zelle noch ne Frage
09.01.2007 10:55:24
Daniel
Hallo
schön, daß wir helfen konnten.
wie geht das mit dem Application.Caller?
wenn ich das in meine Funktion einbaue, bekomme ich einen Fehlerwert (Fehler 2023)
Deswegen habe ich ja den kleinen Workaround gebastelt.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige