Herbers Excel-Forum - das Archiv

Letzte aktive Zelle

Bild

Betrifft: Letzte aktive Zelle
von: Florian Paech

Geschrieben am: 08.01.2007 16:23:25
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
Bild

Betrifft: Application.Caller oT
von: Kurt Isane
Geschrieben am: 08.01.2007 16:25:15
k
Bild

Betrifft: AW: Letzte aktive Zelle
von: Daniel Eisert

Geschrieben am: 08.01.2007 16:50:42
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
Bild

Betrifft: AW: Letzte aktive Zelle
von: Florian Paech
Geschrieben am: 09.01.2007 08:09:59
Vielen Dank für die Antworten. Habe beide ausprobiert und es funktionieren beide wunderbar.
Danke Flo
Bild

Betrifft: AW: Letzte aktive Zelle noch ne Frage
von: Daniel Eisert

Geschrieben am: 09.01.2007 10:55:24
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
 Bild
Excel-Beispiele zum Thema "Letzte aktive Zelle"
Letzte nichtleere Zelle ermitteln Letzter Wert in Zeile
Letztes Speicherdatum eintragen Letzter Wert aus einem Bereich
Letztes Speicherdatum in die Fußzeile aller Tabellenblätter Formel bis zur letzten Zeile der Nebenspalte kopieren
Letzte Zelle mit Inhalt suchen Letzte Zelle einer Spalte mit Inhalt aus geschlossener Arbeitsmappe
Letzte Verknüpfung in einem Tabellenblatt löschen Letztes Zeichen der Werte einer Zellauswahl hoch-/tiefstellen