Feststellen, ob Tabelle geändert wurde
#1
Hallo Excel-Verein,

heute habe ich ein ganz spezielle Frage, die an die "Innereien" von Excel geht.

Wenn ich eine Tabelle öffne, sie anschaue und wieder schließe gibt es keinen Kommentar von Excel.
Wenn ich aber eine Tabelle öffne und darin etwas ändere und wieder schließen will, fragt Excel nach, ob ich die Änderungen speichern will.

Wo, wie und mit welchem Parameter registriert Excel, dass etwas geändert worden ist und kann ich diesen Parameter irgendwie ermitteln bw. auslesen?

Vielen Dank für sachdienliche Hinweise!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#2
Moin!
Dies wird in der Workbook.Saved-Eigenschaft gespeichert.
https://msdn.microsoft.com/de-de/vba/exc...erty-excel

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
Hallo Ralf,

vielen Dank für die schnelle Antwort!
Werde mich damit auseinandersetzen und das ausprobieren, ob es für meine Zwecke das Richtige bringt.

Ja, es ist das was ich brauchte und funktioniert einwandfrei!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#4
Du machst mich neugierig: was is dein Zweck ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#5
Hallo snb,

mein Anwendungszweck ist, dass ich (für einen anderen Tread) eine Tabelle für ein Reitturnier "gebastelt" habe, welche laufenden Änderungen unterliegen soll (Zeilen löschen bzw. einfügen oder tauschen) und deren Aktualisierung mittels VBA über einen entsprechenden Button "angeschoben" wird.
Damit die Aktualisierung nicht "vergessen" und der Turnierplan fehlerhaft ausgehangen wird, wechselt der Button die Farbe und die Beschriftung den Text.
Reicht dir die Erklärung?

Hier der Link zum anderen Tread und der Tabelle:
http://www.clever-excel-forum.de/user-20.html
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#6
Das reicht. Danke.

Dann würde ich nur diese Code verwenden (lösche alle andere Code; ein Button ist überflüssig):


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Tabelle1.Range("D5:D8")) Is Nothing And Application.CountBlank(Tabelle1.Range("D5:D8")) = 0 Then
        Application.EnableEvents = False

        [A11:A39] = [row(1:29)]
        [B11:B39] = [index(D5+(D7-D6)*int((row(1:29)-1)/D8)/1440+d6*(row(1:29)-1)/1440,)]
        [E11:E39] = [D6]

        Application.EnableEvents = True
    End If
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#7
Hallo snd,

danke für deinen Vorschlag, nur leider trifft er nicht den Kern der Sache!
Die Tabellengröße ist nicht fix, sondern kann beliebig erweitert bzw. reduziert werden.
Wenn ich das richtig interpretiere hast du deinen Code auf einen fixen Bereich der Tabelle abgestellt, nämlich A11 bis E39 - und das ist nicht flexible!
Ansonsten ein sehr interessanter Codeansatz, den ich mier einmal näher ansehen und untersuchen muss ...
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#8
Zitat:Die Tabellengröße ist nicht fix, sondern kann beliebig erweitert bzw. reduziert werden

Und wo kann VBA die TabellenGröße lesen ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#9
Hallo snb,

hier liest VBA die Tabellengröße:

Code:
i = Cells.Find("*", SearchDirection:=xlPrevious).Row
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#10
Das kann nur funktionieren wenn die Spalten schon gefüllt sind. Und dann ist das befüllen von spalte A, B und E überflüssig.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste