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

Benutzerdefinierte Funktion

Benutzerdefinierte Funktion
04.09.2007 14:45:00
peter_a
Hallo !
Ich habe eine benutzderdefinierte Funktion erstellt, die abhängig von Zellinhalten einen Wert in die Zelle schreibt. Das funktioniert auch ganz gut. Nur wenn sich die Zellinhalte ändern und der Wert also auch ändern muss ... dann tut er das erst, wenn ich F" Taste drücke und ENTER. (F9 reicht auch nicht aus "neu berechnen) . Gibts da einen Trick?
Vielen Dank Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefinierte Funktion
04.09.2007 14:54:00
Rudi
Hallo,
Application.Volatile an den Anfang der Funktion.
Du musst aber damit rechnen, dass die Mappe recht lahm wird, da die Funktion bei jeder Berechnung irgendeiner Zelle neu berechnet wird.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Benutzerdefinierte Funktion
04.09.2007 15:02:00
peter_a
Hallo Rudi !
So in etwa? Leider funktioniert es nicht ! Was mach ich falsch ? :-(
Vielen Dank
Peter

Public Function Pruefung_Zellen(Zeile)
Application.Volatile
If ActiveSheet.Cells(Zeile, 2)  "" And _
ActiveSheet.Cells(Zeile, 3)  "" Then
Pruefung_Zellen = "X"
Else
Pruefung_Zellen = "Y"
End If
End Function


Anzeige
AW: Benutzerdefinierte Funktion
04.09.2007 15:14:02
Rudi
Hallo,
wie kommen die Werte in Spalte B und C? Per Formel? Dann geht das nicht.
Und warum machst du das nicht einfach mit einer Formel anstatt VBA?
Alternativ könntest du auch einen Namen einsetzen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Benutzerdefinierte Funktion
04.09.2007 15:36:03
fcs
Hallo Peter,
du solltest deine Funktion etwa wie folgt aufbauen. Und die Formeleingabe anpassen.
Gruß
Franz

Die Zeilennummer steht hierbei in Zelle A1
Formel:
=Pruefung_Zellen(B:B;C:C;A1)
Public Function Pruefung_Zellen(Spalte1 As Range, Spalte2 As Range, Zeile) As String
'Vergleich Zeielnwerte Zweier Spalten
If Application.WorksheetFunction.Index(Spalte1, Zeile, 1)  "" And _
Application.WorksheetFunction.Index(Spalte2, Zeile, 1)  "" Then
Pruefung_Zellen = "X"
Else
Pruefung_Zellen = "Y"
End If
End Function


Anzeige
AW: Benutzerdefinierte Funktion
04.09.2007 15:14:00
fcs
Hallo Peter,
Application.Volatile ist die eine Möglichkeit, aber eben ggf. eine Bremse.
Die 2. ist die, dass du deine Funktion "ordentlich" aufbaust, so dass alle Zellen, die die Funktion für die Berechnung benötigt auch auch als Parameter an die Funktion übergeben werden. Dann erfolgt auch immer die Neuberechnung des Formelwerts, wenn ein Zellwert geändert wird.
Gruß
Franz
Beispiel:

so
Formeleingabe:
=MeineFunktion(A17;B17;C17)
Function MeineFunktion(Wert1 As Double, Wert2 As Double, Wert3 As String) As Double
Select Case UCase(Wert3)
Case "A"
MeineFunktion = Wert1 * 10
Case "B"
MeineFunktion = Wert2 * 5
Case Else
MeineFunktion = -999
End Select
End Function
und nicht so
Formeleingabe:
=MeineFunktion2()
Function MeineFunktion2() As Double
Application.Volatile
Wert1 = ThisWorkbook.Worksheets("Tabelle1").Range("A17").Value
Wert2 = ThisWorkbook.Worksheets("Tabelle1").Range("B17").Value
Wert3 = ThisWorkbook.Worksheets("Tabelle1").Range("C17").Value
Select Case UCase(Wert3)
Case "A"
MeineFunktion2 = Wert1 * 10
Case "B"
MeineFunktion2 = Wert2 * 5
Case Else
MeineFunktion2 = -999
End Select
End Function


Anzeige
AW: Benutzerdefinierte Funktion
04.09.2007 15:31:00
peter_a
Hallo Franz
Danke für den Tipp, funktioniert toll und auch schnell.
Ciao
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige