Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro: Datum automatisch aktualisieren

Makro: Datum automatisch aktualisieren
10.03.2006 12:51:17
Patrick
Hi, hoffe Ihr könnt mir helfen...
Mein Makro sieht so aus:

Private Sub Worksheet_Change(ByVal Target As Range)
'Dieses Macro überwacht dieses worksheet und wird bei jeder Veränderung aktiv.
'Es wird die jeweilge Zeile in der Range überwacht und bei einer Veränderung wird in
'der Zeile der Veränderung (z) in Spalte 3 (A=1, C=3) das aktuelle Datum eingefügt.
Dim z As Range, ber As Range
Set ber = Intersect(Target, Range("A2:C250"))
If Not ber Is Nothing Then
For Each z In ber
If z <> "" Then Cells(z.Row, 3) = Date
Next z
End If
End Sub

Das funzt auch super, aber nun sind in dem einen Feld Hyperlinks.
Das Makro soll nun auch das Datum aktualisieren, wenn der Links nur ANGEKLICKT wurde. Im moment aktiviert sich das Makro ja erst bei einer Veränderung des Feldes.
1000 Dank
Patrick
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Datum automatisch aktualisieren
10.03.2006 14:16:42
IngGi
Hallo Patrick,
die beiden Ereignisprozeduren kommen in's Klassenmodul des Arbeitsblattes. Die Prozedur Datum_eintragen() kommt in ein allgemeines Modul (hier: Modul1). Die Variablen z und ber müssen dann natürlich global deklariert werden.
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Set ber = Intersect(Range(Target.Range.Address), Range("A2:C250"))
Modul1.Datum_eintragen
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Set ber = Intersect(Target, Range("A2:C250"))
End Sub
Sub Datum_eintragen()
If Not ber Is Nothing Then
For Each z In ber
If z <> "" Then Cells(z.Row, 3) = Date
Next z
End If
End Sub
Gruß Ingolf
Anzeige
AW: Makro: Datum automatisch aktualisieren
10.03.2006 14:19:03
IngGi
... und gleich einen Fehler entdeckt.
Der Prozeduraufruf Modul1.Datum_eintragen muss natürlich in beide Ereignisprozeduren
Gruß Ingolf
AW: Makro: Datum automatisch aktualisieren
10.03.2006 15:33:34
Patrick
Hi,
danke für Eure Hilfe, aber beide Ansätze funktionieren nicht. Excel ist dann immer sofort platt. Habe einmal kurz noch "Objekt fehlt" gesehen.
Ich glaube der zweite Teil (das Modul1) muss noch einmal angepasst werden...
Habt Ihr noch ne Idee ?
Gruß Patrick
Anzeige
AW: Makro: Datum automatisch aktualisieren
10.03.2006 16:23:41
IngGi
Hallo Patrick,
zwei Dinge sind mir aufgefallen. Erstens ein Fehler von mir. Die Variable z muss nicht global deklariert werden. Es reicht eine Deklaration nur für die Prozedur Datum_eintragen().
Zweitens ruft sich die Prozedur Datum_eintragen() eben durch das Eintragen des aktuellen Datums über die Ereignisprozedur Worksheet_Change selbst auf. Das habe ich mal über Application.EnableEvents abgeschaltet. Somit sieht die Prozedur jetzt so aus:

Sub Datum_eintragen()
Dim z As Range
If Not ber Is Nothing Then
For Each z In ber
If z <> "" Then
Application.EnableEvents = False
Cells(z.Row, 3) = Date
Application.EnableEvents = True
End If
Next z
End If
End Sub
Gruß Ingolf
Anzeige
AW: Makro: Datum automatisch aktualisieren
10.03.2006 16:35:02
Patrick
Ändert leider nix...
AW: Makro: Datum automatisch aktualisieren
10.03.2006 18:01:05
IngGi
Hallo Patrick,
ich habe das nochmal nachgebaut und getestet. Ich habe aber natürlich nur die 3 Prozeduren aus meinen Antworten. Das läuft bei mir einwandfrei. Wenn man in Spalte A oder B etwas in eine Zelle schreibt oder auf einen Hyperlink in diesen Spalten klickt, wird in der entsprechenden Zeile, in Spalte C das aktuelle Datum eingetragen. Ich gehe daher davon aus, dass das Projekt bei dir nicht nur aus diesen 3 Prozeduren besteht. Dann steckt der Fehler wahrscheinlich im veränderten Zusammenspiel zwischen diesen 3 Prozeduren und dem Rest des Projektes. Ich habe dir einmal die von mir nachgebaute Datei hochgeladen:
https://www.herber.de/bbs/user/31794.xls
Gruß Ingolf
Anzeige
AW: Makro: Datum automatisch aktualisieren
21.03.2006 11:08:04
Patrick
War ne Woche im Urlaub...
Habe mich jetzt komplett an deiner Version orientiert und es geht !!!
Super und VIELEN DANK
AW: Makro: Datum automatisch aktualisieren
10.03.2006 14:17:09
Heiko
Hallo Patrik,
es gibt neben dem Ereignis,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

auch das Ereignis,

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
End Sub

das wird ausgelöst wenn du auf einen Hyperlink klickst und diesem folgst. Kannst du dir dann ja auf deine Überwachung anpassen.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Makro: Datum automatisch aktualisieren
10.03.2006 15:35:50
Patrick
Das Ereignis ist glaube ich jetzt das richtige...
Der Rest muss leider nur noch angepasst werden, und ich weiss nicht wie !
Gruß Patrick
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datum automatisch aktualisieren in Excel mit Makros


Schritt-für-Schritt-Anleitung

Um in Excel das Datum automatisch zu aktualisieren, kannst du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Doppelklicke auf das Arbeitsblatt, in dem du das Datum automatisch aktualisieren möchtest (z.B. "Tabelle1").

  3. Füge den folgenden Code in das entsprechende Modul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim z As Range, ber As Range
       Set ber = Intersect(Target, Range("A2:C250"))
       If Not ber Is Nothing Then
           For Each z In ber
               If z <> "" Then Cells(z.Row, 3) = Date
           Next z
       End If
    End Sub
  4. Um das Datum auch bei einem Klick auf einen Hyperlink zu aktualisieren, füge diesen Code ebenfalls hinzu:

    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
       Set ber = Intersect(Range(Target.Range.Address), Range("A2:C250"))
       Datum_eintragen
    End Sub
  5. Erstelle die Subroutine Datum_eintragen, um das Datum einzufügen:

    Sub Datum_eintragen()
       Dim z As Range
       If Not ber Is Nothing Then
           For Each z In ber
               If z <> "" Then
                   Application.EnableEvents = False
                   Cells(z.Row, 3) = Date
                   Application.EnableEvents = True
               End If
           Next z
       End If
    End Sub
  6. Schließe den VBA-Editor und teste dein Makro, indem du eine Zelle in den Spalten A oder B änderst oder auf einen Hyperlink klickst.


Häufige Fehler und Lösungen

  • Objekt fehlt: Stelle sicher, dass alle benötigten Variablen korrekt deklariert sind und alle Makros in den richtigen Modulen platziert sind.
  • Excel stürzt ab: Überprüfe, ob Application.EnableEvents korrekt gesetzt ist, um eine Endlosschleife zu vermeiden.
  • Datum wird nicht aktualisiert: Achte darauf, dass die Zellen, die du überwachen möchtest, im definierten Bereich (A2:C250) liegen.

Alternative Methoden

Wenn du nicht mit Makros arbeiten möchtest, kannst du auch die folgende Formel verwenden, um das aktuelle Datum anzuzeigen:

=HEUTE()

Diese Formel gibt das aktuelle Datum zurück und aktualisiert sich automatisch, wenn die Datei geöffnet wird. Beachte jedoch, dass dies das Datum nicht bei jeder Änderung aktualisiert.


Praktische Beispiele

  1. Einfügen des aktuellen Datums bei Änderungen: Wenn du in Zelle A2 einen Wert eingibst, wird in Zelle C2 das aktuelle Datum eingefügt.
  2. Aktualisierung des Datums bei Hyperlink-Klick: Wenn du auf einen Hyperlink in den Spalten A oder B klickst, wird das Datum in der entsprechenden Zeile in Spalte C aktualisiert.

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um das Flackern des Bildschirms während der Ausführung des Makros zu vermeiden.
  • Teste deine Makros in einer Kopie deiner Arbeitsmappe, um Fehler zu vermeiden.
  • Erstelle eine Schaltfläche in Excel, um dein Makro mit einem Klick auszuführen.

FAQ: Häufige Fragen

1. Wie kann ich in Excel das Datum automatisch aktualisieren?
Du kannst ein Makro verwenden, das das aktuelle Datum in eine bestimmte Zelle einfügt, wenn eine Änderung in einem bestimmten Bereich der Tabelle vorgenommen wird.

2. Funktioniert das auch in Excel Online?
Makros sind in Excel Online nicht verfügbar. Du kannst jedoch die Formel =HEUTE() verwenden, um das Datum anzuzeigen.

3. Was tun, wenn das Datum nicht automatisch aktualisiert wird?
Überprüfe deine Makroeinstellungen und stelle sicher, dass die Ereignisprozeduren korrekt eingerichtet sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige