Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wert einer Zelle einmal monatlich "wegschreiben"
#1
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.
Antworten Top
#2
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
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • fvento
Antworten Top
#3
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


Angehängte Dateien
.xlsx   sample.xlsx (Größe: 9,29 KB / Downloads: 7)
Antworten Top
#4
Und wo stehen die Daten?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
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.
Antworten Top
#6
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#7
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 ...
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#8
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
Antworten Top
#9
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
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste