Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alter Zellinhalt benutzerdef. Funktion

Alter Zellinhalt benutzerdef. Funktion
15.11.2005 09:19:15
Stefan
Hallo Leute,
hat jemand einen Lösungsansatz für folgendes Problem:
Habe eine benutzerdef. Funktion, die unter bestimmten Bedingungen als Rückgabewert den alten Inhalt der Zelle mit dem Funktionsaufruf zurückgeben soll.
Über Application.Caller komme ich an die aufrufende Zelle heran, aber der Value-Wert der Zelle ist bei Funktionsaufruf bereits geleert.
Sieht jemand eine Möglichkeit, außer jeden Zellinhalt bei Änderung in ein separates Blatt zu schreiben (Datenmenge) ?
Gruß und Danke, Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: Alter Zellinhalt benutzerdef. Funktion
15.11.2005 11:14:45
Harald
Hallo Stefan,
wäre vielleicht eine Möglichkeit, den Wert in einen Kommentar zu übernehmen.
In diesem Fall muss bereits ein Komentarfeld vorhanden sein.

Sub wertinkommentar()
Sheets(1).Cells(1, 1).Comment.Text Text:="Letzter Wert war: " & Cells(1, 1).Value
End Sub

Gruss Harald
AW: Alter Zellinhalt benutzerdef. Funktion
15.11.2005 11:19:44
Heiko
Hallo Stefan,
vielleicht nicht das ganze Tabellenblatt, sondern nur die Spalte(n) in der deine UDF steht.
Und dann nicht in einem extra Tabellenblatt sondern in einem Array, z.B. so
In ein allgemeines Modul:
Option Explicit
Public varSpalteCWerte As Variant
Function SummeUDF(Zelle1 As Range, Zelle2 As Range) As Long
SummeUDF = Zelle1 + Zelle2
If Application.Caller.Address = "$C$10" And SummeUDF > 10 Then
SummeUDF = varSpalteCWerte(Application.Caller.Row)
End If
End Function
Diese Funktion bildet (für mich Testweise) ne Summe aus zwei Zellen, und wenn halt bestimmte Bedingungen erfüllt sind, dann wird der alte Wert wieder in die Zelle geschrieben. Hier nur auf Zelle C10 beschränkt.
In das Tabellenblatt mit den UDF´s:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ReDim varSpalteCWerte(ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row)
varSpalteCWerte = Application.WorksheetFunction.Transpose( _
Range("C1:C" & ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row))
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Alter Zellinhalt benutzerdef. Funktion
15.11.2005 11:52:17
Stefan
Hallo Heiko,
funkt leider nicht, da die Funktion auf beliebige Zellbereiche (Verweise in ParamArray) zurückgreifen kann und daher die Funktion von Excel während der Berechnung automatisch aufgerufen wird, wenn eine der Vorgängerzellen geändert / neu berechnet wird.
Noch 'ne Idee ?
Gruß Stefan
AW: Alter Zellinhalt benutzerdef. Funktion
15.11.2005 13:10:39
Heiko
Hallo Stefan,
ich kenn dein Projekt ja nicht, aber wenn du auch noch das Calculate Ereignis mit auswertest dann kriegst du ja auch das mit.

Private Sub Worksheet_Calculate()
ReDim varSpalteCWerte(Sheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row)
varSpalteCWerte = Application.WorksheetFunction.Transpose( _
Sheets("Tabelle1").Range("C1:C" & Sheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row))
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ReDim varSpalteCWerte(Sheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row)
varSpalteCWerte = Application.WorksheetFunction.Transpose( _
Sheets("Tabelle1").Range("C1:C" & Sheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row))
End Sub

Aber ich gebe zu, ohne deine Tabelle zu kennen ist das nur stochern im Nebel.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige