Ich habe zwei Tabellenblätter und möchte, dass das zweite Tabellenblatt aktualisiert wird, sobald jemand das erste Tabellenblatt ändert. Ich kann das mit einer einfachen if-Anweisung tun, aber es wird erst aktualisiert, wenn die Person, die an dem ersten Blatt arbeitet, es schließt und erneut öffnet.
Ist es möglich, dies automatisch zu tun?
Antwort1
Aus dem Kommentar zu einer gelöschten Antwort erkenne ich, dass die zu aktualisierenden Tabellen auf anderen Rechnern liegen. Diese Aktualisierung ist meiner Meinung nach nicht möglich, es sei denn, man schreibt ein Makro für die Remote-Tabellen, das regelmäßig das Änderungsdatum der Quelltabelle überprüft und sich bei Bedarf selbst aktualisiert. Das Dokument muss in diesem Fall auf einer öffentlichen Netzwerkfreigabe liegen und die Arbeit ist alles andere als einfach.
Wenn alle Benutzer Zugriff auf das Internet haben, können Sie auch eine Online-Tabelle verwenden, um gemeinsam an nureinsTabellenkalkulation. Es gibt verschiedene Online-Produkte, auch kostenlose, die diesen Zweck erfüllen können.
Geben Sie uns dazu nähere Einzelheiten zu Ihrem Umfeld und den darin gewünschten bzw. möglichen Umgebungsbedingungen bekannt.
Antwort2
Sie können ein worksheet_change-Makro auf der ersten Tabelle festlegen, das die zweite Tabelle aktualisiert. Der Code würde ungefähr so aussehen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wbk2 As Workbook, wbk1 As Workbook, sht1 As Worksheet, sht2 As Worksheet
Set wbk1 = ActiveWorkbook
Set sht1 = ActiveSheet
on error resume next
set wkb2=workbooks("myfile.xlsx")
if err<>0 then
err.clear
Set wbk2 = Workbooks.Open("\\remotecomputer\folder\myfile.xlsx")
end if
on error goto 0
Set sht2 = wbk2.Sheets("mySheet2")
sht2.Cells(1, 1) = "I have updated range " & Target.Address & " in sheet " & sht1.Name & " to value " & Target.Value
wbk2.Close True
End Sub