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

VBA - für Tabellenarchivierung

VBA - für Tabellenarchivierung
06.03.2019 17:27:41
Chris
Hallo zusammen,
ich beise mir gerade die Zähne an einem eigentlich einfachen Makro aus.
Das liegt sicherlich auch daran, dass mein VBA-Wissen eher bescheiden ist aber ich komme einfach nicht weiter!
Ich versuche ein Makro zu erstellen, bei welchem eine bestehende Tabelle als Wert unter sich selbst kopiert wird. Die Formatierung soll übernommen werden, aber nicht die Formeln. Als Zusatz, soll oberhalb der Tabelle noch ein Datumsstempel erscheinen.
Bei jedem Auslösen des Makros, soll sich eine neue Version unter die bereits bestehenden kopieren, so dass ein Archiev entsteht.
Folgenden Code habe ich:

Sub TabelleKopieren()
Dim Wohin As Range
Set wks1 = Worksheets("Datengrundlage (3)")
With Worksheets("Datengrundlage (3)")
Set Wohin = .Range("C" & .Rows.Count).End(xlUp).Offset(6, 0)
Wohin.Value = Date$
End With
With wks1
ActiveSheet.Select
.Range("C1:EH58").Copy Destination:=wks1.Range("C" & .Rows.Count).End(x1Up).Offset(1, 0) _
End With
End Sub
Das Eintragen des Datums klappt wunderbar, der Rest leider überhaupt nicht.
Ich nehme an, dass ich den Bereich, in welchen die Tabelle kopiert werden soll, nicht vernünftig definiert habe, finde aber den Fehler nicht. Außerdem würden ja so auch alle Formeln kopiert werden.
Vielen Dank für Eure Hilfe!
Gruß
Chris

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - für Tabellenarchivierung
06.03.2019 18:45:27
ChrisL
Hi Chris
"Funktioniert nicht" ist keine sinnvolle Fehlerbeschreibung.
Mein Glasauge sieht ein X1UP anstelle XLUP.
Gleicher Code nur aufgeräumt...
Sub TabelleKopieren()
With Worksheets("Datengrundlage (3)")
.Range("C" & .Rows.Count).End(xlUp).Offset(6, 0) = Date$
.Range("C1:EH58").Copy Destination:=wks1.Range("C" & .Rows.Count).End(xLUp).Offset(1, 0)
End With
End Sub
cu
Chris
AW: VBA - für Tabellenarchivierung
06.03.2019 18:46:44
ChrisL
noch mehr aufgeräumt :)
Sub TabelleKopieren()
With Worksheets("Datengrundlage (3)")
.Range("C" & .Rows.Count).End(xlUp).Offset(6, 0) = Date$
.Range("C1:EH58").Copy Destination:=.Range("C" & .Rows.Count).End(xLUp).Offset(1, 0)
End With
End Sub

Anzeige
AW: VBA - für Tabellenarchivierung
07.03.2019 12:14:20
Chris
Das ist es! Vielen Dank!
Oh man, da war ich echt etwas blind. Danke auch für die Aufräumarbeiten!
Eine Frage noch. Wie kann ich das eingefügte Datum formatieren? Also so, dass es in Schriftgröße X, links angeschlagen und als Text in der Zelle steht.
Danke und Gruß
AW: VBA - für Tabellenarchivierung
07.03.2019 13:50:01
ChrisL
Hi Chris
Ein Datum als Text einzutragen ist m.E. der falsche Weg, aber so gehts...
Sub TabelleKopieren()
With Worksheets("Datengrundlage (3)")
With .Range("C" & .Rows.Count).End(xlUp).Offset(6, 0)
.NumberFormat = "@"
.Font.Size = 11
.Value = Format(Date, "DD.MM.YYYY")
End With
.Range("C1:EH58").Copy Destination:=.Range("C" & .Rows.Count).End(xlUp).Offset(1, 0)
End With
End Sub

Richtiger Umgang mit Datentypen:
Zahl = Datentyp Zahl (Integer, Long, Currency etc.)
Datum = Datentyp Date
Text = Datentyp String
etc.
Alles andere holt einem meistens früher oder später wieder ein.
cu
Chris
Anzeige
AW: VBA - für Tabellenarchivierung
07.03.2019 16:08:21
Chris
Hi Chris,
ich gebe Dir völlig Recht, aber in diesem Fall soll das Datum wirklich nur ein Stempel für das Auge sein bzw. ein Dropdown füttern. Deshalb kann ich dort auch kein Datumsformat gebrauchen.
Vielen Dank für Deine schnelle Hilfe!
Gruß
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige