Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

Alle Makroaufrufe bei Änderung Stammdate

Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 15:44:40
Martin
Hallo,
ich habe mir eine VBA-Funktion geschrieben, die ich in meinem Excel-Sheet in ca. 800 Zellen verwende. Sie berechnet aus ein paar benachbarten Zellen einen Wert. Diese Funktion nutzt auch ein paar Stammdaten, die sie selbst aus einer anderen Tabelle im Blatt ausliest.
So steht dann z.B. in Zelle A3:
 =meineFunktion(A1,B2,C3)
Wie kriege ich es jetzt hin, dass, wenn ich die Stammdaten ändere, alle 800-Funktionsaufrufe neu starte? Einfach das Blatt neu berechnen hilft nicht. Und für jeden der 800 Funktionsaufrufe jeweils eine der Eingabezellen zu ändern und wieder zurück ist auch nicht praktikabel.
Eine Lösung wäre:
Ich könnte aus meiner "Funktion für eine Zelle" ein Makro machen, dass mir nach dem Aufruf alle der 800 Felder füllt. Ich weiß wo die Felder stehen und könnte einfach alle Felder aus VBA befüllen. So würde dann aber aus einer einfachen Funktion ein größeres Makro - geht, habe ich aber keinen Bock zu.
Geht das nicht einfacher?
Liebe Grüße,
Martin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 16:26:43
GerdL
Hallo Martin,
an den darstellenden Künsten kannst du noch arbeiten.
Auf Verdacht:
Dim C As Range
Dim Stammdatenzellen As Range
Set Stammdatenzellen = .......
For Each C In Stammdatenzellen.Cells
    With C
        Call meineFunktion(C.Offset(-2, 0), C.Offset(-1, 1), C.Offset(0, 2))
    End With
Next
Gruß Gerd
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 16:30:10
Martin
Hallo Gerd,
danke für die Antwort, aber sie beantwortet nicht meine Frage. Was meinst Du mit "darstellenden Künsten"?
Ich habe auch die Antwort auf mein Problem selbst schon gefunden und gepostet.
Trotzdem Danke,
Martin
Anzeige
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 16:33:47
Martin
Hallo Gerd,
ach ja, warum beantwortet Deine Antwort mein Problem nicht.
Ausgehend von den Stammdaten weiß ich nicht, in welchen Zellen diese Funktion aufgerufen wird. Und die steht halt in 800 verschiedenen Zellen.
Danke,
Martin
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 16:41:13
GerdL
Hallo Martin,
unabhängig von deiner eigenen Lösung hast du weder "meineFunktion" gezeigt, noch geschrieben oder gezeigt wie du sie einsetzt noch wie du dir die Stammdaten holst.
Folglich war meine Antwort nur "auf Verdacht".
Gruß Gerd
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 17:00:11
Martin
Ah, ok. Naja, ich hatte gesagt, dass ich in 800 Zellen die Funktion aufrufe. Ein Beispiel stand da.
Ich habe mich bewusst dagegen entschieden, die Funktion zu zeigen. Das ist zwar nichts geheimes, ist aber für die Lösung des Problems unerheblich. Ich muss halt für 800 Zelle eine Berechnung anstossen. Oder aus der einfachen Funktion ein komplexeres Makro machen. Der Inhalt der Funktion hätte nur abgelenkt.
Wenn es Dich interessiert: (Die Funktion ist zu lang für hier - prinzipiell sieht sie so aus)

function meineFunktion(par1 As Integer, par2 As Integer, par3 As Integer) as Integer
 
    With Sheets("Stammdaten").Cells(2, 1)
        funct = .Value
    End With
    With Sheets("Stammdaten").Cells(2, 2)
         par = .Value
    End With
    result = ... jetzt wird mit par1, par2, par3, funct und par gerechnet
    meineFunktion = result
end meineFunktion
Liebe Grüße,
Martin
Und ja, ich habe hier ein paar fest verdrahtete Zeilen-Koordinaten drin. Ist mir hier aber egal.
Anzeige
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 17:17:31
snb
Wenn ich ein UDF verwende, wird diese immer neu berechnet wenn sich etwas in dem Arbeetisblatt ändert.(oder F2 geklickt wird).
Ich versthe nicht warrum das bei dir incht passieren soll.
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 17:31:27
Martin
Die Stammdaten stehen halt auf einem anderen Arbeitsblatt. Und außer der Verwendung in der Funktion gibt es keine Verbindung zwischen diesen Blättern.
Dank Chris' Tipp übergebe ich die Stammdaten-Range jetzt als Parameter mit, was mein Problem löst.
Danke
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 17:18:04
ChrisL
Hi
Beispiele
Function meineFunktion(par As Integer) As Integer
meineFunktion = par * Range("A1")
End Function
Function meineFunktion2(par As Integer, rng As Range) As Integer
meineFunktion2 = par * rng.Value
End Function
In Beispiel 2, wenn du den "Stammdaten-Parameter" mit der Funktion mitgeben würdest, hättest du das Problem nicht.
Im Beispiel 1 könntest du Application.Volatile einsetzen, aber dies würde die Applikation/Funktion dann halt eben volatil machen d.h. es würde bei jeder Änderung, egal wo, eine Neuberechnung durchgeführt. Im Beispiel 2 hast du den Vorteil, dass nur bei Änderung der für die Funktion relevanten Parametern neu berechnet wird.
cu
Chris
Anzeige
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 17:29:12
Martin
Hi Chris,
stimmt, die Stammdaten-Range als Parameter mitgeben ist eine gute Lösung - das war ja einfach. Hätte ich auch selbst drauf kommen können.
Danke, Martin
AW: Alle Makroaufrufe bei Änderung Stammdate
27.01.2023 16:27:33
Martin
Habe die Lösung jetzt durch einen Geistesblitz gefolgt von weiterem Google selbst gefunden. Ich kann die Zellen "dirty" setzen, dann wird alles darin neu berechnet. Und die Range, in der die Betroffenen Zellen stehen kann ich zum Glück leicht angeben.
Ich baue mir auf meine Stammdatenseite also einfach einen "Neu berechnen"-Button, der mir die betroffene Zellen "dirty" setzt.
Sheets("Zauberstamm").Range("T5:AA7").Dirty
Liebe Grüße,
Martin
PS: Bin schon seit Jahren hier Lurker und Gelegenheitsprofiteuer. Mal sehen, jetzt, wie ich registriert bin, kann ich ja vielleicht auch mal helfen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige