Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
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

1 mal im Monat automatisch in andere Sheet speiche

1 mal im Monat automatisch in andere Sheet speiche
05.09.2019 08:46:06
Annika
Halluu,
ich komm iwie nicht weiter..
Ich möchte immer wenn es der 25. des Monats ist, das 2 Spalten kopiert werden und
in ein andere Sheet gespeichert werden.
Wenn der nächste Monat antrifft, dann neben den 2 Spalten wieder gespeichert werden.
und das jeden monat im loop
Die Lösung sollte in VBA Realisierbar sein
Kann mir Jemand helfen bitte...
Mfg
Anni

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 1 mal im Monat automatisch in andere Sheet speiche
05.09.2019 09:08:55
Bernd
Servus Anni,
teste mal (Codebereich: "DieseArbeitsmappe")...
Tabellen und Zellbereiche musst du noch anpassen!

Private Sub Workbook_Open()
If Day(Date) = 25 Then
With Sheets("Tabelle2")
If .Cells(1, .Cells(2, Columns.Count).End(xlToLeft).Column).Value  Date Then
.Cells(1, .Cells(2, Columns.Count).End(xlToLeft).Column + 1).Value = Date
Sheets("Tabelle1").Range("A1:B" & Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row) _
.Copy
.Cells(2, .Cells(2, Columns.Count).End(xlToLeft).Column).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Thisworkbook.Save    ' alternativ, falls sofort gespeichert werden soll
End If
End With
End If
End Sub
Der Code setzt allerdings voraus, dass diese Datei auch jeden Monat zum 25. geöffnet wird.
Grüße, Bernd
Anzeige
AW: 1 mal im Monat automatisch in andere Sheet speiche
05.09.2019 09:36:52
Annika
Hey Bernd,
und wenn es z.b der 25.10 ist , werden die 2 Spalten in Tabelle2 nicht überschrieben sondern stehen nebeneinander in etwa so.
25.09
A         B       
25.10
A         B     C           D                 

25.11
  A         B     C           D      E        F         

Weil leider kann ich das nicht prüfen .
Aber wenn es dann am 25.10 nebeneinander steht , Topp!! ,bedanke ich mich rechtherzlich für deine Hilfe :)
Anzeige
AW: 1 mal im Monat automatisch in andere Sheet speiche
05.09.2019 10:38:55
Bernd
Servus Annika,
du hast recht, da war noch ein kleiner Bug drin.
Teste das mal:

Private Sub Workbook_Open()
If Day(Date) = 25 Then
With Sheets("Tabelle2")
If .Cells(1, .Cells(1, Columns.Count).End(xlToLeft).Column).Value  Date Then
.Cells(1, .Cells(2, Columns.Count).End(xlToLeft).Column + 1).Value = Date
Sheets("Tabelle1").Range("A1:B" & Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row) _
_
.Copy
.Cells(2, .Cells(1, Columns.Count).End(xlToLeft).Column).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
'        ThisWorkbook.Save    ' alternativ, falls sofort gespeichert werden soll
End If
End With
End If
End Sub
Zum Testen musst du nur die Zahl bei

If Day(Date) = 25 
auf den heutigen Tag (also = 5) ändern. Dann Datei neu starten oder alternativ den code durch F5/F8 manuell starten.
Anschliessend das protokollierte Datum aus Tabelle2 von heute verändern (also z.B. vom 05.09.2019 auf 04.09.2019) und das Makro erneut ausführen...
Grüße, Bernd
Anzeige
AW: 1 mal im Monat automatisch in andere Sheet speiche
05.09.2019 11:00:44
Annika
Jetzt hab ich nur noch das Problem das die Spalten nicht nebeneinander sind sondern.
SpalteA und Spalte K ( nicht a bis k ) ..
hmm?
AW: 1 mal im Monat automatisch in andere Sheet speiche
05.09.2019 15:11:46
Werner
Hallo Annika,
warum nicht einfach:
Worksheets("Tabelle1").Range("G:G,Z:Z").Copy Worksheets("Tabelle2").Range("A1")
Gruß Werner
AW: 1 mal im Monat automatisch in andere Sheet speiche
06.09.2019 07:39:14
Bernd
Servus Annika,
bitte zukünftig gleich alle Anforderungen/Informationen bereitstellen. Das spart dir und uns allen viel Zeit. :-)

Private Sub Workbook_Open()
If Day(Date) = 25 Then
With Sheets("Tabelle2")
If .Cells(1, .Cells(1, Columns.Count).End(xlToLeft).Column).Value  Date Then
.Cells(1, .Cells(2, Columns.Count).End(xlToLeft).Column + 1).Value = Date
Sheets("Tabelle1").Range("A1:A" & Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row) _
.Copy
.Cells(2, .Cells(1, Columns.Count).End(xlToLeft).Column).PasteSpecial Paste:=xlValues
Sheets("Tabelle1").Range("K1:K" & Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row) _
.Copy
.Cells(2, .Cells(1, Columns.Count).End(xlToLeft).Column + 1).PasteSpecial Paste:= _
xlValues
Application.CutCopyMode = False
'        ThisWorkbook.Save    ' alternativ, falls sofort gespeichert werden soll
End If
End With
End If
End Sub
Grüße, Bernd
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige