Seite 1 von 1
Re: Zellbereich per Makro überwachen und ggf. Makro starten
Verfasst: Di, 19.11.2013 10:03
von Stephan
Wenn ich nun einer dieser Zellen ändere soll ein anderes Makro starten.
Rechtsklick auf Tabellenreiter, dort "Tabellenereignisse und das Makro dem Ereignis "Inhalt geändert" zuordnen.
Wenn es wichtig ist das das Makro nur arbeitet wenn in bestimmten Zellen Änderungen erfolgen [1], müßte die auslösende Zelle ermittelt und ausgewertet werden, im Sinne:
Code: Alles auswählen
Sub Main(x)
Msgbox x.RangeAddress.dbg_properties
End Sub
[1]
ich habe Dein Anliegen schon verstanden, meine Aussage bezieht sich hier nur darauf das Du zwar willst das das Makro nur läuft wenn bestimmte Zellen geändert wurden, was aber nicht zwingend heißen muss das Makro darf in anderen Fällen nicht laufen, es kommt dabei darauf an was das Makro tut - natürlich ist es quasi immer besser das Makro nur abzuarbeiten wenn es sein muß, im Konkreten könnte es höchstens leichter sein darauf zu verzichten weil Du Dich dann nicht mit dem Vergleich der auslösenden Zelle befassen musst (wobei das ja nun auch nicht sooo kompliziert ist)
Gruß
Stephan
Re: Zellbereich per Makro überwachen und ggf. Makro starten
Verfasst: Di, 19.11.2013 13:22
von Stephan
Wenn es ein einfache Möglichkeit gebt, bitte teilen Sie mit mir Ihr Wissen.
habe ich doch längst getan. Im beiliegenden Makro:
Code: Alles auswählen
Sub Main(x)
Msgbox x.RangeAddress.dbg_properties
End Sub
gibt die Messagebox die nötigen Infos aus, und es ist nur nötig nun im Einzelnen zu vergleichen mit den gewünschten Zellen, da sind 5 Werte (Sheet, StartRow, Endrow, ... und die müssen mit den Erwartungswerten verglichen, der gewüschten Zellen, verglichen werden.
Ich habe aktuell keine Zeit,
vielleicht schreibt jemand Anderes einen Codeschnipsel hin, ansonsten siehe:
viewtopic.php?f=18&t=1553
Gruß
Stephan
Re: Zellbereich per Makro überwachen und ggf. Makro starten
Verfasst: Di, 19.11.2013 18:35
von Stephan
Wenn noch jemand es für mich ausführlicher beschreiben könnte, wäre das echt nett! ':)
Wenn es um den Zellbereich A1 bis A20 ginge, dann z.B.:
Code: Alles auswählen
Sub Main(x)
With x.RangeAddress
tmp = 0
If .Startrow >= 0 Then tmp = tmp +1
If .EndRow <= 19 Then tmp = tmp + 1
If .StartColumn = 0 AND .EndColumn = 0 Then tmp = tmp + 1
End With
If tmp = 3 Then
DeinMakro
End If
End Sub
Sub DeinMakro()
Msgbox "nur ein Test"
End Sub
An der Stellen von "DeinMakro()" muss natürlich Dein auszuführendes Makro eingefügt werden.
Gruß
Stephan
Re: Zellbereich per Makro überwachen und ggf. Makro starten
Verfasst: Di, 19.11.2013 18:41
von F3K Total
Hi,
binde mal dieses Makro an das
Tabellenereignis Inhalt geändert:
Code: Alles auswählen
Sub S_cell_check_A4_A1000(event)
osheet = thiscomponent.sheets.getbyname("Tabelle1")
oRange = osheet.getcellrangebyname("A4:A1000")
if oRange.queryIntersection(event.RangeAddress).count = 1 then
msgbox "Ich, die Zelle """+event.AbsoluteName+""" liege im Zellbereich A4:A1000"
end if
End Sub
Gruß R