Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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
Inhaltsverzeichnis

Datiertes Protokollieren von Bestimmtien Werten

Datiertes Protokollieren von Bestimmtien Werten
04.01.2018 18:13:02
Bestimmtien
Hallo liebe Forummitglieder!
ich bin schon den ganzen Tag auf der Suche nach der Lösung meines Problems.
Folgendes möchte ich Bewerkstelligen: (datiertes protokollieren von bestimmten Werten für ein Diagramm, vorm Speichern)
Habe eine Mappe wo mir zu gewissen Stati Werte angezeigt werden. C2:C16 (könnte auch sein das man weitere Zellen hin zu nimmt welche nicht genau in dem Spaltenbereich sind, zB. A1, B5, ...)
So jetzt geht es darum, wenn Listen Bearbeitet werden ändern sich meine Werte. Dies möchte ich vorm Abspeichern nun in ein Protokoll oder so ablegen. Kurzgesagt die ausgespuckten Werte mit dem Datum ablegen. Am besten in eine Mappe "Statistik". Hier Könnte nun in Spalte A Datum stehen und in den weiteren Spalten die Werte von C2 bis C16 und weitere in folge... (Die Zellen welche als Datenquelle dienen sind immer die gleichen)
Beim Nächsten mal wenn ich mir die Werte Anlgen lasse sollen die Stati in einer neuen Ziele stehen mit dem neuem Datum. (Wenn die zeit und der Usernabe dabei sind tut es auch nicht weh)
Hab mir schon Beispiele von Protokollen zu Änderungen in Zellen angeschaut.
In dieser weiße:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ErsteFreieZeile As Long
If Target.Count > 1 Then Exit Sub
If Sh.Name = "Protokoll" Then Exit Sub
If Intersect(Target, Sh.Range("A1:Q35")) Is Nothing Then Exit Sub
With Sheets("Protokoll")
ErsteFreieZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(ErsteFreieZeile, 1) = Sh.Name
.Cells(ErsteFreieZeile, 2) = Target.Address(0, 0)
.Cells(ErsteFreieZeile, 3) = Target.Value
.Cells(ErsteFreieZeile, 5) = Date
.Cells(ErsteFreieZeile, 6) = Time
.Cells(ErsteFreieZeile, 7) = Environ("username")
End With
End Sub

Hier möchte ich halt dann meine Werte der Stati eintragen und nicht diese Daten wie Tabellnenname, Zellle und Wellwert... welche hier angegeben sind.
Ich möchte nur eine Momentaufnahme festhalten welche ich dann für ein Diagramm mit Datumsskala verwenden kann. Und nicht mehr eine Liste per Hand führen möchte, wie ich es momentan mache, da ich das alles ein wenig vergrößern möchte.
Hoffe habe mein Problem gut genug erklärt, ansonsten einfach fragen.
Möchte es am liebsten so einbaun, dass es diese Abfrage vorm speichern auslöst.
Private Sub Workbook_BeforeSave(ByVal SpeichernAngezeigt As Boolean, Abbrechen As Boolean)
Dim a As Variant
' "Ja" und "Nein" und "Abbrechen" Schaltfläche
a = MsgBox("Bitte wählen Sie ob kein Eitrag erfolgen soll", vbYesNoCancel, "Kein  _
Statisikeintrag")
If a = vbYes Then
MsgBox "Gespeichert ohne Eintrag"
ElseIf a = vbNo Then
'Statistikeintrag ins Protokoll Start
'Statistikeintrag ins Protokoll Ende
MsgBox "Gespeichert mit Statistikeintrag"
Else
Abbrechen = True
MsgBox "Sie haben Abbrechen gewählt"
End If
End Sub

Werte Nicht Ablegen mit "Ja", dass es beim Speichern nicht am Standartknopfn für Enter liegt, zwecks bequemlichkeit zum Zwischenspeichern beim arbeiten.
Nach Fertigstellung der Bearbeitung Werte erstellen mit "Nein" Button.
https://www.herber.de/bbs/user/118679.xlsm
Ich denke evtl ist die Lösung gar nicht so kompliziert...
Herzlichen Dank im Voraus, falls mir jemand mit meinem problem helfen möchte.
Tobias

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datiertes Protokollieren von Bestimmtien Werten
04.01.2018 19:59:41
Bestimmtien
Hallo Tobias,
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim objCell As Range, objRange As Range, objWB As Workbook
Dim lngAnswer As Long, lngNextRow As Long, lngCol As Long
Dim strStatistikFile As String, strTabName As String
Dim bolOpen As Boolean

On Error GoTo ErrorHandler

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .AskToUpdateLinks = False
  .DisplayAlerts = False
  .Calculation = xlCalculationManual
End With

lngAnswer = MsgBox("Soll ein Statistikeintrag erstellt werden?", 291, "Statistikeintrag erstellen")

strStatistikFile = "E:\Forum\Statistik.xlsx" 'Pfad zur Statistikdatei - Anpassen!

If lngAnswer = vbYes Then
  If Dir(strStatistikFile, vbNormal) = "" Then
    Set objWB = Workbooks.Add
    With objWB
      With .Sheets(1)
        .Columns(1).NumberFormat = "dd.mm.yyyy"
        .Columns(2).NumberFormat = "hh:mm:ss"
      End With
      .SaveAs strStatistikFile, FileFormat:=51
    End With
  Else
    For Each objWB In Application.Workbooks
      If objWB.FullName = strStatistikFile Then
        bolOpen = True
        Exit For
      End If
    Next
    If objWB Is Nothing Then Set objWB = Workbooks.Open(strStatistikFile)
  End If
  
  With ThisWorkbook.Sheets("Tabelle1") 'Tabelle mit den zu übertragenden Werten - Anpassen!
    Set objRange = .Range("C2:C16,A1,B5")
  End With
  
  With objWB
    With .Sheets(1)
      lngNextRow = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
      .Cells(lngNextRow, 1) = Date
      .Cells(lngNextRow, 2) = Time
      .Cells(lngNextRow, 3) = Environ("USERNAME")
      lngCol = 3
      For Each objCell In objRange.Cells
        lngCol = lngCol + 1
        .Cells(lngNextRow, lngCol) = objCell.Value
      Next
    End With
    If bolOpen Then
      .Save
    Else
      .Close True
    End If
  End With
  Me.Activate
  MsgBox "Gespeichert mit Statistikeintrag"
ElseIf lngAnswer = vbNo Then
  MsgBox "Gespeichert ohne Eintrag"
Else
  Cancel = True
  MsgBox "Sie haben Abbrechen gewählt"
End If

ErrorHandler:

If Err.Number <> 0 Then
  MsgBox "Fehler in DieseArbeitsmappe" & vbLf & vbLf & "Prozedur:" & vbTab & "Workbook_BeforeSave" & vbLf & _
    "Nummer:" & vbTab & Err.Number & vbLf & "Meldung:" & vbTab & Err.Description & vbLf & _
    IIf(Erl, "Zeile:" & vbTab & Erl, ""), vbExclamation, "Fehler!"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .AskToUpdateLinks = True
  .DisplayAlerts = True
  .Calculation = xlCalculationAutomatic
End With

Set objWB = Nothing
Set objRange = Nothing
Set objCell = Nothing
End Sub

Die Frage habe ich allerdings umgestellt und den NEIN-Button als default gesetzt, ist ja blöd, wenn Ja auf einmal Nein heißen soll!
Die Statistikdatei wird angelegt, sofern sie noch nicht erstellt wurde.
Gruß Sepp

Anzeige
AW: Datiertes Protokollieren von Bestimmtien Werten
04.01.2018 22:19:02
Bestimmtien
WOW! Das ging so schnell, das war jetzt unerwartet! Haut super hin, hab es inzwischen in meine Orginal-Excel angepasst und auch noch ein Dynamisches Diagramm dazugebastelt (https://www.youtube.com/watch?v=QHEi8jVxI54).
Traumhaft.
Falls ich noch Fragen haben melde ich mich nochmal,
aber vorerst nicht.
Danke Danke Danke :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige