Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datum bei Änderung
Werner
Hallo Forum,
ich habe mir von Hajo nachfolgende Datei runtergeladen, da es genau die Problemlösung für mich darstellt.
http://hajo-excel.de/chCounter3/getfile.php?id=41
Nur schaffe ich es in einem Bereich nicht den Code soweit abzuändern, dass es die gesetzten Bedingungen erfüllt.
Texteingabe......: H4:H1001
Datumsausgabe: C4:C1001
Bei Überschreiben des Textes Korrekturdatum in ausgeblendete und geschützte Zellen Q4 : Q1001
Bei erneutem Überschreiben KorrekturDatum in ausgeblendete und geschützte Zellen R4 : R1001 usw.
Durch Ändern des Codes in LoLetzte = LoLetzte - .Column – 12 wird das Erstdatum in die gewünschte Zelle (C4:C1001) geschrieben.
Jedoch kriege ich es nicht hin, dass das jeweilige Korrekturdatum in die Zellen Q4:Q1001usw. geschrieben werden.
Wer kann mir helfen?
Gruß und Danke
Werner

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

Betreff
Benutzer
Anzeige
AW: Datum bei Änderung
11.09.2011 15:06:16
Josef

Hallo Werner,
probiere es so.

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  
  On Error GoTo ErrExit
  
  If Not Intersect(Target, Range("H4:H1001")) Is Nothing Then
    Application.EnableEvents = False
    Me.Unprotect 'ggf. Passwort angeben
    For Each rng In Intersect(Target, Range("H4:H1001"))
      If Cells(rng.Row, 3) = "" Then
        Cells(rng.Row, 3) = Date
      Else
        Cells(rng.Row, Application.Max(17, Cells(rng.Row, _
          Columns.Count).End(xlToLeft).Column + 1)) = Date
      End If
    Next
    Me.Protect 'ggf. Passwort angeben
  End If
  
  ErrExit:
  Application.EnableEvents = True
End Sub



« Gruß Sepp »

Anzeige
AW: Datum bei Änderung
11.09.2011 15:40:56
Werner
Hallo Sepp,
Danke für Deine schnelle Hilfe,
doch leider funktioniert es nicht so wie ich es möchte.
Nach dem Eintragen eines Textes wird das Erst-Datum zwar in das richtige Feld eingetragen, doch dann wird die gesamte Tabelle gesperrt.
Die Korrekturen von Datensätze ist somit nicht möglich, und daher wird auch kein Kerrekturdatum generiert und in die entsprechenden Zellen geschrieben.
Nun ja, wenn das mit dem Ausblenden und Schützen der Spalten nicht funktioniert :-(, dann wäre ich schon zufrieden wenn die jeweiligen Korrekturdaten in die Zellen Q4:Q1001 bzw. R4:R1001 etc. generiert werden.
Jetzt mache ich erstmal Feierabend und werde mich ins Hotel begebenen (zurzeit mein Zuhause, da ich mich derzeit beruflich im Ausland aufhalte) und weiter experimentieren :-).
Nochmals Danke und Gruß
Werner
Anzeige
AW: Datum bei Änderung
11.09.2011 15:52:05
Josef

Hallo Werner,
ein Tabellenblatt kann man nur als Ganzes schützen. Du kannst die Zellen in die eine Eingabe erfolgen soll, "entsperren" (Format > Zellen Sperren). Wie sieht den dein Schutz der ausgeblendeten Spalten aus?

« Gruß Sepp »

AW: Datum bei Änderung
11.09.2011 17:36:57
Werner
Hallo Sepp,
Zum Schutz (Sperren) einzelner ausgeblendeter Spalten/Zeilen gehe ich wie folgt vor…
Beispiel: Spalte Q bis U soll ausgeblendet und geschützt werden.
(kann dann nicht ohne Kennwort nicht eingeblendet werden)
- Spalte Q bis U ausblenden
- Tabellenblatt komplett markieren (links oben)
- Format – Zellen formatieren – Schutz – Haken bei Gesperrt entfernen.
- Die zu schützenden Spalten markieren. Da ausgeblendet incl. der leeren Spalten P und V.
- Format – Zellen formatieren – Schutz – Haken in Gesperrt setzen
- Überprüfen – Blatt schützen – Kennwort eingeben – Haken bei gesperrte Zellen entfernen*.
- Ok
Fertig ist der Schutz
Um einzelne Zellen zu schützen gehe ich ebenso vor.
Da einzelne Zellen nicht ausgeblendet werden können, passe ich den Zelleninhalt der Hintergrundfarbe an. Und damit diese Zellen nicht angeklickt werden können nehme ich den Haken* bei gesperrte Zellen raus. Somit ist der Zelleninmhalt auch nicht in der Bearbeitungsleiste zu sehen.
Gruß
Werner
Anzeige
AW: Datum bei Änderung
11.09.2011 17:49:33
Josef

Hallo Werner,
dann versuche es so.

' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  Dim lngLast As Long
  On Error GoTo ErrExit
  
  If Not Intersect(Target, Range("H4:H1001")) Is Nothing Then
    Application.EnableEvents = False
    Me.Unprotect "test"
    For Each rng In Intersect(Target, Range("H4:H1001"))
      If Cells(rng.Row, 3) = "" Then
        Cells(rng.Row, 3) = Date
      Else
        lngLast = Application.Max(17, lastCell(Me, rng.Row, False) + 1)
        Cells(rng.Row, lngLast) = Date
      End If
    Next
    Me.Protect "test"
  End If
  
  ErrExit:
  Application.EnableEvents = True
End Sub


Private Function lastCell(ByRef sh As Worksheet, ByRef ColOrRow As Long, Optional LastRow As Boolean = True) As Long
  On Error GoTo ErrExit
  
  With sh
    If ColOrRow < 1 Or (LastRow And ColOrRow > .Rows.Count) Or _
      (Not LastRow And ColOrRow > .Columns.Count) Then Exit Function
    .Parent.CustomViews.Add "##TempView##", False, True
    If LastRow Then
      .Rows.Hidden = False
      If .AutoFilterMode Then If .FilterMode Then .ShowAllData
      If .Cells(.Rows.Count, ColOrRow) <> "" Then
        lastCell = .Rows.Count
      Else
        lastCell = .Cells(.Rows.Count, ColOrRow).End(xlUp).Row
      End If
    Else
      .Columns.Hidden = False
      If .Cells(ColOrRow, .Columns.Count) <> "" Then
        lastCell = .Columns.Count
      Else
        lastCell = .Cells(ColOrRow, .Columns.Count).End(xlToLeft).Column
      End If
    End If
    ErrExit:
    On Error Resume Next
    With .Parent.CustomViews("##TempView##")
      .Show
      .Delete
    End With
    On Error GoTo 0
  End With
End Function



« Gruß Sepp »

Anzeige
AW: Datum bei Änderung
11.09.2011 19:24:26
Werner
Hallo Sepp,
super, klasse, prima :-)
Funktioniert bestens.
Ein gaaaanz dickes DANKE !!!!
Weißt Du evtl. ob es eine Möglichkeit gibt den Code auszublenden, sodass niemand Änderungen vornehmen kann. Habe zwar hier im Forum etwas gefunden, funktioniert anscheinend nicht, jedenfalls nicht bei mir :-).
Ich stelle mal die Datei zur Ansicht rein.
https://www.herber.de/bbs/user/76561.xls
Nochmals Danke und Gruß
Werner
AW: Datum bei Änderung
11.09.2011 19:34:47
Josef

Hallo Werner,
im VBE Rechtsklick auf dein VBA_Project > Eigenschaften von VBA Project... > Schutz > Haken bei "Project für die Anzeige sperren" > Passwort vergeben > OK.
Beim nächste Öffnen der Datei, kannst du nur mit deinem Passwort in das VBA-Projekt.

« Gruß Sepp »

Anzeige
AW: Datum bei Änderung
12.09.2011 12:33:51
Werner
Hallo Sepp,
ich habe nochmal eine Bitte. Das Datum wird mit der Uhrzeit 00:00 angezeigt. Wie muss ich wo was in deinem Script ändern damit die Uhrzeit angezeigt wird.
In Deinem Script möchte ich nicht "rumbasteln" denn dann werde ich sicherlich mehr zerstören als modivizieren :-)
Danke und Gruß
Werner
AW: Datum bei Änderung
12.09.2011 18:10:00
Josef

Hallo Werner,
statt "= Date" einfach "= Now" und die Zellen entsprechend formatieren.

« Gruß Sepp »

Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige