Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates.
x
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.
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.
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!
11.03.2018, 17:43 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2018, 17:43 von Kuwer.)
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.
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)