Clever-Excel-Forum

Normale Version: Wert einer Zelle einmal monatlich "wegschreiben"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebe Excel User,

ich führe eine Excelliste in der täglich einige Zeilen hinzugefügt werden.
In dieser Liste habe ich eine Spalte B definiert, in der ich mittels der Funktion "Anzahl2" die Anzahl der nicht leeren Zellen zählen lasse. Diesen Wert lasse ich mir in Zelle A10 anzeigen.
Je mehr Zeilen hinzugefügt werden bei dem die Spalte B keinen Inhalt hat, erhöht sich der Wert in Zelle A10.

Soweit so gut. 

Nun möchte ich mir gerne zu jedem Monatsersten diesen Wert in Zelle A10 automatisch wegschreiben lassen. Am besten in einem neuen Tabellenblatt.

Das Ergebnis sollte in etwa so aussehen:


1.1.2018        56
1.2.2018        72
1.3.2018        86
1.4.2018        112


Ich hoffe mich einigermaßen ausgedrückt zu haben und hoffe auf den ein oder anderen Lösungsansatz.
Hi,

zeig mal bitte anhand einer abgespeckten (ca. 15-20 Datensätze) wie das bei dir aussieht.Sensible Daten vorher anonymisieren. Lies mal hier: http://www.clever-excel-forum.de/thread-326.html
Hallo,
anbei eine Sample Datei. In der Zelle i1 werden die leeren Zellen gezählt.

Zu jedem Monatsersten möchte ich, dass diese Wert woanders gesichert wird.

Vielen Dank
Und wo stehen die Daten?
In der Auflistung stehen keine Daten, da ich diese nicht benötige. 


Der Wert in i1 wird ja von Zeit zu Zeit größer, je mehr Zeilen eingefügt werden wo in Spalte D leer bleibt.
Ich benötige eine Lösung, wo ich diesen "Wachstum" historisch nachverfolgen kann.

Ich könnte mir diesen zu jedem Monatsersten manuell eintragen, aber genau dies würde ich vermeiden.

Sprich, wenn ich die Datei am 1.4. öffne, soll Excel den aktuellen Wert von i1 lesen und wegschreiben.
am 1.5. dann wieder.
Hi,

ich fürchte, das ist nur mit VBA zu lösen (da kann ich dir aber nicht helfen). Oder du bleibst bei der Handarbeit - ist ja nur einmal im Monat.
Moin,
da du eine recht "klassische" Excel-Versio besitzt würde ich folgenden Weg gehen: Am ersten Arbeitstag des Monats die Datei öffnen und unter dem entsprechenden Namen speichern. Mit VBA wäre mir das viel zu viel Aufwand. Nimm doch beispielsweise einmal den nächsten Ersten, der ja ein Sonntag ist. Und ach ja, der 2.4. ist ja auch ein Feiertag ...
Hallo fvento,

folgender VBA-Code kommt in das schon vorhandene VBA-Modul 'DieseArbeitsmappe':
Private Sub Workbook_Open()
Dim datMonat As Date
Dim datMax As Date
datMonat = DateSerial(Year(Date), Month(Date), 1)
With Worksheets("Monatsliste") 'das ist das Listenarbeitsblatt
datMax = Application.Max(.Columns(1))
If datMonat > DateSerial(Year(datMax), Month(datMax), 1) Then
With .Cells(.Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = Date
.Offset(1, 1).Value = Worksheets("Tabelle1").Range("I1").Value
End With
End If
End With
End Sub
Die Datei musst Du dann aber als Excel-Arbeitsmappe mit Makros (*.xlsm) speichern.

Gruß Uwe
Hallo,
ich habe Dir eine ganz einfache Variante erstellt. Diese erzeugt im aktuellen Verzeichnis ein Sub-Verzeichnis "Backup" und speichert jeden 1. des Monats ein Testfile hinein in dem nur steht "11.03.2018  Sicherung = 6";
Der VBA-Code kommt in das schon vorhandene Modul  "DieseArbeitsmappe":


Code:
Private Sub Workbook_Open()
Dim StrPath As String
Dim FN As String
Dim nFileNr As Long
Dim Data As String

Application.ScreenUpdating = False
On Error Resume Next
If Dir(ActiveWorkbook.Path & "\Backup", vbDirectory) = "" Then
   MkDir ActiveWorkbook.Path & "\Backup"
End If
If Day(Date) = 11 Then
   StrPath = ActiveWorkbook.Path & "\Backup\"
   FN = Format(Date, "dd.mm.yyyy") & "_Sicherung.txt"
   If Dir(StrPath & FN, vbNormal) = "" Then
      nFileNr = FreeFile
      Open StrPath & FN For Output As #nFileNr
           Data = Format(Date, "dd.mm.yyyy") & "  Sicherung = " & Tabelle1.Range("I1").Value
           Print #nFileNr, Data
      Close nFileNr
    End If
End If
End Sub