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

Kopieren von Werten ausgelöst durch Wenn()

Kopieren von Werten ausgelöst durch Wenn()
12.01.2015 22:07:46
Werten
Hallo zusammen,
ich möchte gerne, dass wenn eine bestimmte Bedingung erfüllt ist ein Makro startet, dass dann nichts anderes tut, als den Inhalt einer Zelle in eine andere zu kopieren.
Aufgerufen wird das Makro durch die Funktion: =if(....;SaveValues(row(N2)), der gleichzeitig die Zeile mitgegeben wird in der die Bedingung erfüllt wurde.
Dadurch wird die SaveValues Funktion aufgerufen, die letztlich nur das Sub MakroSaveValues aufruft und ihm die Zeile übergibt:


Function SaveValues(row) As Boolean
MakroSaveValues (row)
End Function

Das Sub liest dann den Inhalt einer Zelle aus und soll ihn in die Nachbarzelle schreiben:

Sub MakroSaveValues(ByVal row2)
a = Worksheets("Sheet1").Cells(row2, 14).Value
Worksheets("Sheet1").Cells(row2, 15).Value = a
End Sub

Ich habe das Konstrukt schon ausgiebig mittels MsgBoxen getestest. Es funktioniert alles bis auf die Wertzuweisung im letzten Schritt. Hat einer von euch Rat an was dies liegen könnte? Wäre sehr dankbar für einen Tipp!

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

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Werten ausgelöst durch Wenn()
12.01.2015 22:17:08
Werten
Hi Markus,
Du rufst SaveValues offensichtlich als Tabellenblattfunktion auf. Damit kannst Du keine Zellen fernsteuern.
VG, Boris

AW: Kopieren von Werten ausgelöst durch Wenn()
12.01.2015 22:22:51
Werten
Hi Boris,
das ist mir klar. Daher rufe ich eigentlich ja auch das Sub auf, dass die Änderungen vornehmen soll. Oder geht das dann selbst so nicht?
VG

AW: Kopieren von Werten ausgelöst durch Wenn()
12.01.2015 22:31:11
Werten
Hi Markus,
nochmal: Mit einer Tabellenblattfunktion kannst Du keine anderen Zellen steuern.
Die Frage ist aber, wodurch die Funktion denn WAHR bzw. aufgerufen wird - welches Ereignis ist dafür verantwortlich? DARAUF musst Du dann entsprechend reagieren.
VG, Boris

Anzeige
Das nutzt dir nichts, ...
13.01.2015 01:38:16
Luc:-?
…Markus;
alles, was von einer Fkt in einer ZellFml aufgerufen wird, wird von Xl wie ein integraler Bestandteil der Fkt behandelt und Fktt in ZellFmln dürfen nur einen ErgebnisWert zurückliefern. Alles andere wird von Xl unterdrückt/ignoriert. Die Anzeige einer MsgBox ist eine der wenigen, allerdings ebenfalls kontraproduktiven Ausnahmen. Stell dir mal vor, was passiert, wenn ständig Dtzde Fktt in Fmln MsgBoxes anzeigen oder irgendwelche Veränderungen am Blatt vornehmen! Eine automatische FmlBerechnung wäre dann wohl kaum möglich…!
Allerdings gibt's Tricks, die man in Einzelfällen anwenden könnte. Auf eine davon, physische Entkopplung von Fkt und SubProzedur mit der WertÜbertragung in ein beliebiges Ziel, bezieht sich Boris in seiner letzten AW. Dazu findest du im Archiv auch Ausführungen von mir, die, wie es Boris andeutet, eine EreignisProzedur dafür nutzen.
Außerdem gibt's noch die Möglichkeit, eine Fkt (UDF) auf der Basis von API-Fktt zu schreiben oder (ab/in Xl12[2007]) einen wohl einer gewissen PgmierSchlampigkeit geschuldeten Effekt im ZusammenSpiel von UDF und SubProzedur für „DatenFernÜbertragungen“ zu nutzen. Dazu darf die SubProzedur allerdings nicht von der UDF aufgerufen wdn, sondern muss ebenfalls in die Fml eingebunden wdn. Die Details sind mir momentan nicht ggw, aber im Archiv findest du ein Bsp von mir (selbstkorrigierende EingabeZelle).
Gruß, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige