Datum automatisch vergeben

Dieses Thema Datum automatisch vergeben im Forum "Microsoft Office Suite" wurde erstellt von joergi78, 20. Aug. 2007.

Thema: Datum automatisch vergeben Hallöchen, wie lautet die Formel, dass autmatisch in einer Zelle ein Datum vergeben wird, wenn in einer anderen...

  1. Hallöchen,

    wie lautet die Formel, dass autmatisch in einer Zelle ein Datum vergeben wird, wenn in einer anderen Zelle etwas eingetragen wird??? Das Datum darf nicht mehr verändert werden.
    Also so:
    Zelle B1= Text Zelle B4=Datum.
    Hoffe ihr könnt mir helfen.
    gruß Joergi78
     
  2. Hallo joergi,

    sowas könnte man mit einem verstecktem Blatt und einem Makro lösen.

    Bei einem Change-Ereignis einer bestimmten Zelle A auf Blatt X wird per Makro geschaut, ob im versteckten Blatt Y Zelle A schon den Inhalt , z.B. 1 hat. Wenn nein, wird auf Blatt X die zur Zelle A korrerpondierende Zelle B mit Datum gefüllt und im versteckten Blatt Y in Zelle A eine 1 gesetzt.

    Die Zellen B wedren auf Änderung überwacht und bei Änderung ein Undo (im Change-Ereignis Cancel=True) ausgelöst.

    Gruß Matjes :)
     
  3. Hallo Matjes,
    Danke für deinen Tipp, aber ich weiß nicht, wie ich diesen umsetzen soll. Hast Du ne Lösung für mich, dich ich dann anpasse???
    Wäre SUPI
    Gruß joergi
     
  4. Hallo joergi78,

    dann hier ein Beispiel:

    Die Mappe hat 2 Blätter:
    a) Eines namens T1, welches überwacht werden soll
    b) ein 2. leere Blatt beliebigen Namens

    T1 ist in der Konstanten cBLTNAME definiert und kann entsprechend angepasst werden.

    Beim Öffnen der Mappe wird dieser Blatt sichtbar gemacht und beim Schliessen versteckt, so dass wenn jemand die Mappe öffnet, ohne den Makro zu aktivieren, das Blatt versteckt bleibt und damit keine Änderung möglich ist (soweit derjenige nicht weis, wie man dieses Blatt trotzdem sichtbar machen kann). Damit das Blatt versteckt werden kann, muß mindestens ein zweites in der Mappe vorhanden sein.

    Änderungen in der Datums-Spalte(4) werden überwacht. Bei Änderung wird einfach ein undo gemacht.

    Änderungen in der Text-Spalte(1) werden überwacht. Bei Änderung und noch nicht gesetztem Datum wird das heutige Datum in der datums-Spalte(4) eingesetzt.

    Folgenden Code in die Code-Seite der Arbeitsmappe (DieseArbeitsmappe) einfügen.

    Code:
    Option Explicit
    
    Private Const cBLTNAME = T1->Name des überwachten Blattes
    
    Private Const cZ_ERSTEWERTEZEILE = 2->Werte ab Zeile 2
    Private Const cSP_DATUM = 4    ->Spalte D
    Private Const cSP_TEXT = 1    ->Spalte A
    
    '**************************************************
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ->*** Blatt ganz verstecken, damit ohne Makro nichts verändert werden kann
     ThisWorkbook.Worksheets(cBLTNAME).Visible = xlSheetVeryHidden
     ThisWorkbook.Save->speichern, damit keine Nachfrage
    End Sub
    
    '**************************************************
    Private Sub Workbook_Open()
    ->*** Blatt sichtbar machen
     ThisWorkbook.Worksheets(cBLTNAME).Visible = xlSheetVisible
     ThisWorkbook.Worksheets(cBLTNAME).Activate
     ThisWorkbook.Saved = True
    End Sub
    
    '**************************************************
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     
     Dim Zelle As Range
     Dim bGefunden As Boolean
     
    ->überwachtes Blatt ?
     If Sh.Name = cBLTNAME Then
      
     ->Änderung eines Datums ? ab Zeile 2, Spalte Datum
      bGefunden = False
      For Each Zelle In Target
       If Zelle.Column = cSP_DATUM Then
        If Zelle.Row >= cZ_ERSTEWERTEZEILE Then
        ->ja
         bGefunden = True
         Exit For
        End If
       End If
      Next
      
     ->Änderung eines Datums ? ja:-> undo und Ende
      If bGefunden Then
      ->Ereignisse abschalten, da sonst das undo ein erneuten Event erzeugt
       Application.EnableEvents = False
      ->undo
       Application.Undo
      ->Ereignisse anschalten
       Application.EnableEvents = True
       GoTo AUFRAEUMEN
      End If
      
     ->Änderungen in Text-Zellen ? ab Zeile 2, Spalte Text
      For Each Zelle In Target
       If Zelle.Column = cSP_TEXT Then
        If Zelle.Row >= cZ_ERSTEWERTEZEILE Then
        ->ja
        ->Datum noch nicht gesetzt ?
         If Sh.Cells(Zelle.Row, cSP_DATUM).Value =  Then
        ->ja -> Datum heute() setzen
         
         ->Ereignisse abschalten, da sonst das Event erzeugt wird
          Application.EnableEvents = False
         ->Zelle für Datum formatieren und Datum einsetzen
          With Sh.Cells(Zelle.Row, cSP_DATUM)
           .NumberFormat = dd.mm.yyyy
           .Value = Now()
          End With
         ->Ereignisse anschalten
          Application.EnableEvents = True
          
         End If
        End If
       End If
      Next
     
     End If
    AUFRAEUMEN:
     Set Zelle = Nothing
    End Sub
    Reicht das so ??
    Gruß Matjes ;)
     
  5. Ja DANKE,
    werde das ganze mal testen bei Gelegenheit. Melde mich dann
    gruß J.
     
Die Seite wird geladen...

Datum automatisch vergeben - Ähnliche Themen

Forum Datum
Kalendereintrag immer automatisch mit Enddatum einen Tag später? Windows XP Forum 14. März 2011
Kalendereintrag immer automatisch mit Enddatum einen Tag später? Windows XP Forum 14. März 2011
Automatisches Datum in Adobe Acrobat 7 Software: Empfehlungen, Gesuche & Problemlösungen 20. Aug. 2008
Excel automatische Datumserstellung Microsoft Office Suite 13. Juli 2006
xcopy mit automatischem aktuellen Datum.. Windows XP Forum 5. Juni 2006