Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
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
Inhaltsverzeichnis

UDF darf keine Auswirkung auf and. Workbooks haben

UDF darf keine Auswirkung auf and. Workbooks haben
30.09.2008 09:44:00
Peter
Guten Tag
Gerd hat mir in den letzten Tagen eine wertvolle Funktion geliefert.
https://www.herber.de/forum/archiv/1012to1016/t1012746.htm
Nun möchte ich noch eine Lösung finden, dass sich eine UDF nur auf die Arbeitsmappe auswirken darf, in welcher die UDF hinterlegt ist.
Wie muss der Code ergänzt werden?
Danke für eine Antwort.
Gruss, Peter
https://www.herber.de/bbs/user/55733.xls
Option Explicit

Public Function yWert(Bereichsnamen As String, dummy As Date) As String
Dim Wks As Worksheet, Zelle As Range, rng As Range, strVersteckte As Boolean
Set Wks = Worksheets(Range(Bereichsnamen).Parent.Name)
With Wks
For Each Zelle In .Range(Bereichsnamen)
If .Rows(Zelle.Row).Hidden = True Or .Columns(Zelle.Column).Hidden = True Then
strVersteckte = True
If IsNumeric(Zelle.Value) Then
If Zelle.Value  0 Then
If rng Is Nothing Then
Set rng = Zelle
Else
Set rng = Union(rng, Zelle)
End If
End If
End If
End If
Next
End With
yWert = IIf(strVersteckte = True, "keine Werte", "keine ausgeblendet")
If Not rng Is Nothing Then yWert = Split(rng.Address(False, False, xlA1, True), "]")(1)
End Function


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UDF darf keine Auswirkung auf and. Workbooks haben
30.09.2008 10:06:00
Gerd
Hallo Peter,
ersetze mal versuchsweise:
Set Wks = Worksheets(Range(Bereichsnamen).Parent.Name)
durch:
Set Wks = ThisWorkbook.Worksheets(Range(Bereichsnamen).Parent.Name)
Gruß Gerd
AW: UDF darf keine Auswirkung auf and. Workbooks h
30.09.2008 11:36:06
Peter
Hi Gerd
Funktion wird trotzdem aufgerufen und in aktiver Datei ausgewertet. Wenn Datei nicht aktiv, sollte Funktion nicht aufgerufen (aktualisiert) werden.
Gruß, Peter
AW: UDF darf keine Auswirkung auf and. Workbooks haben
30.09.2008 14:01:00
Rudi
Hallo,

dass sich eine UDF nur auf die Arbeitsmappe auswirken darf, in welcher die UDF hinterlegt ist.


das ist doch immer so, sofern die UDF sich nicht in einem geladenen Addin befindet.
Gruß
Rudi

Anzeige
AW: UDF darf keine Auswirkung auf and. Workbooks h
30.09.2008 14:49:32
Peter
Hallo Rudi
Fakt ist, dass die UDF Probleme macht, wenn ich 2 Workbooks mit dem gleichen Code
gleichzeitig geöffnet habe, da die UDF der nicht aktivem Datei nicht richtig ausgewertet wird. Wäre nett, wenn du die hochgeladene Datei auf deinem PC mal dublizieren könntest und dann die eine Tabelle umbenennen könntest - dann wird ersichtlich (wenn am Bildschirm auch die nicht aktive Datei ersichtlich ist), dass bei der deaktivem Datei die UDF nicht korrekt funktioniert.
Wenn du mir einen Lösungsansatz hättest, wäre das super.
Gruss, Peter
AW: UDF darf keine Auswirkung auf and. Workbooks h
30.09.2008 16:03:10
fcs
Hallo Peter,
durch die Funktion HEUTE() in der Funktion als Parameter wird die Funktion bei jeder Neuberechnung angestoßen. Dabei bezieht sich dann bei dir die Objektzuweisung für wks immer auf die aktive Arbeitsmappe.
Damit die Zuordnung für das Tabellenblatt korrekt funktioniert, solltest du als zusätzlichen Parameter in der UDF eine beliebige Zelle (als Range) aus dem Tabellenblatt verwenden. Über diese Zelle erreichst du dann auch die korrekte Zuweisung des Tabellenblatts.
Gruß
Franz

Public Function yWert(rngZelle As Range, Bereichsnamen As String, dummy As Date) As String
Dim Wks As Worksheet, Zelle As Range, rng As Range, strVersteckte As Boolean
Set Wks = rngZelle.Parent
With Wks
For Each Zelle In .Range(Bereichsnamen)
If .Rows(Zelle.Row).Hidden = True Or .Columns(Zelle.Column).Hidden = True Then
strVersteckte = True
If IsNumeric(Zelle.Value) Then
If Zelle.Value  0 Then
If rng Is Nothing Then
Set rng = Zelle
Else
Set rng = Union(rng, Zelle)
End If
End If
End If
End If
Next
End With
yWert = IIf(strVersteckte = True, "keine Werte", "keine ausgeblendet")
If Not rng Is Nothing Then yWert = Split(rng.Address(False, False, xlA1, True), "]")(1)
End Function


Anzeige
AW: UDF darf keine Auswirkung auf and. Workbooks h
30.09.2008 23:27:00
Peter
Hallo Franz
Vielen Dank - das mit dem weiteren Argument hat es in sich - klappt auf Anhieb. Vielen Dank!
Gruss, Peter
AW: UDF darf keine Auswirkung auf and. Workbooks h
30.09.2008 16:06:29
Rudi
Hallo,

Function yWert(Bereich As Range, dummy As Date) As String
Dim Zelle As Range, rng As Range, strVersteckte As Boolean
For Each Zelle In Bereich
If Zelle.EntireRow.Hidden = True Or Zelle.EntireColumn.Hidden = True Then
strVersteckte = True
If IsNumeric(Zelle.Value) Then
If Zelle.Value  0 Then
If rng Is Nothing Then
Set rng = Zelle
Else
Set rng = Union(rng, Zelle)
End If
End If
End If
End If
Next
yWert = IIf(strVersteckte = True, "keine Werte", "keine ausgeblendet")
If Not rng Is Nothing Then yWert = Split(rng.Address(False, False, xlA1, True), "]")(1)
End Function


Gruß
Rudi

Anzeige
AW: UDF darf keine Auswirkung auf and. Workbooks h
30.09.2008 23:31:00
Peter
Hallo Rudi
Vielen Dank für die Antwort. Irgendwas hat mein Excel nicht geschluckt, als Ergebnis wird nun ein Fehlerwert geliefert. Doch das Problem ist nun mit der Antwort von Franz gelöst.
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige