Microsoft Excel

Herbers Excel/VBA-Archiv

Wie rufe ich worksheet_change auf?

Betrifft: Wie rufe ich worksheet_change auf? von: Tobi Winzer
Geschrieben am: 15.09.2014 15:02:19

Hallo liebes Forum

folgendes soll passieren:

Ich generiere aus einer Eingabemaske ein Tabellenblatt.

In dieser Tabelle habe ich eine Spalte, in deren Zellen jeweils zwei Optionen per DropDown ausgewählt werden können.

Ich möchte jetzt, dass sich bei Auswahl von Option2 auch die Formel in einer anderen Zelle ändert.

Bisher habe ich rausgefunden, dass das mit dem Ereignis worksheet_change funktionieren könnte. Ich verstehe aber nicht, wie dieses bei einem Tabellenblatt, das erst generiert wird, benutzt werden kann.

Danke für eure Hilfe

  

Betrifft: AW: Wie rufe ich worksheet_change auf? von: Rudi Maintaire
Geschrieben am: 15.09.2014 15:09:39

Hallo,
warum baust du die Formel nicht entsprechend?
Alternativ: Richte dir eine Vorlage für das Blatt inkl. Code ein.

Gruß
Rudi


  

Betrifft: AW: Wie rufe ich worksheet_change auf? von: Tobi Winzer
Geschrieben am: 15.09.2014 15:20:16

Du meinst ich soll innerhalb der Formel eine if-Abfrage erstellen, die dann bei entsprechender Auswahl der Option2 die Formel ändert?


  

Betrifft: ja owT von: Rudi Maintaire
Geschrieben am: 15.09.2014 15:22:08




  

Betrifft: AW: ja owT von: Tobi Winzer
Geschrieben am: 15.09.2014 15:42:12

OK ich verstehe, wie es funktionieren soll. Leider bekomm ich das nicht hin.

Mein Problem ist, dass die Tabelle sehr dynamisch ist, da die Eingabemöglichkeiten sehr vielfältig sind und sich daher die Zeilenzahl der Zelle, in der die Formel steht, bei jedem Mal ändert.

Da müsste mir die Funktion ja auch noch zurückliefern, in welcher Zeile sie steht...ist das möglich?

Die Funktion sieht jetzt folgendermaßen aus:

Function get_SFOCstandard(value)
    
    'if range("E" & value) then range("K" & value).formula = "=get_SFOCpartload("    
    Index = Round(value, 0)       
    ptr = 107 - Index                
    get_SFOCstandard = Round(Worksheets("Fuel Consumption V48_60 CR").Cells(ptr, 15), 1)  
    
End Function 
Der fettgedruckte Code ist das Problem, der Rest ist die Standard-Funktion, wie bereits besteht.
Ich weiß ehrlich gesagt nicht, wie ich das, was ich will umsetzen soll


  

Betrifft: AW: ja owT von: Rudi Maintaire
Geschrieben am: 15.09.2014 16:17:17

Hallo,
Da müsste mir die Funktion ja auch noch zurückliefern, in welcher Zeile sie steht...ist das möglich?
ja.
DieZeile=application.caller.row

Allerdings sind Functions eigentlich dazu da, Werte zu liefern und nicht irgendwelche Aktionen auszulösen.

Gruß
Rudi


  

Betrifft: AW: ja owT von: Tobi Winzer
Geschrieben am: 16.09.2014 08:21:56

Würde das denn auch mit worksheet_change Ereignis gehen?