Service: Excel-VBA: Neues Arbeitsblatt aus Datumszelle

In einem Exel-Forum wurde folgende Frage gestellt:

Ich beabsichtige die Daten aus zwei verschiedenen Dateien über einen Makro-Befehl miteinander zu verbinden:
In Datei X wird in Spalte B13 bis B157 ein Datum (immer letzter eines Monats) errechnet. Dieses Datum soll in den Tabellenblättern der Datei Y in Feld A1 fortlaufend übernommen werden. D. h., wenn ich in der Datei Y einen Kopierbefehl für ein neues Tabellenblatt über einen Makro auslöse, sollte immer das nächsthöhere Datum in Feld A1 erscheinen und das neue Tabellenblatt entsprechend benannt werden.
Beispiel:
Datei X, (immer) Tabellenblatt 1: Feld B13 = 30.09.2011
Datei Y, Tabellenblatt 10.11: Stand 30.09.2011
Wenn ich dann in Datei Y den Makro auslöse, soll ein neues Tabellenblatt in Datei Y mit dem Datum aus der Datei X, Feld B14 - also 31.10.2011 - generiert werden.
Schön wäre es, wenn das neue Tabellenblatt dann auch noch die Bezeichnung 11.11 (und nicht Nov. 2011) bekäme.

Die Lösung:
Public Sub CreateWorkbookFromCurrentCellDate()

    Dim currentValue As String
    currentValue = ActiveCell

    If Not IsDate(currentValue) Then Exit Sub

    Dim currentMonth As Long
    currentMonth = Month(currentValue)

    Dim currentYear As Long
    currentYear = Year(currentValue)

    Dim targetWorkbook As Workbook
    Set targetWorkbook = Workbooks.Add
' Oder:
    'Set targetWorkbook = Workbooks.Open("[irgend ein Pfad zu irgend einer Datei].xls")

    Dim targetSheet As Worksheet
    Set targetSheet = targetWorkbook.Sheets(1)

    targetSheet.Name = Format$(DateSerial(currentYear, currentMonth, 1), "mm.yy")
    targetSheet.Range("B13") = currentValue

End Sub
Hinweise

Arbeitsmappe mit vollständigem Beispielcode


Ergebnis: vollständig vordefinierte Routine mit Fehlerbehandlung Interessant für Sie:

VBA-Extentions-Tools

Produktivität in VBA steigern
Routinearbeiten in VBA vereinfachen



Seitenanfang

Kontaktaufnahme- und Terminvereinbarung:

Bei Fragen und für Terminvereinbarungen erreichen Sie uns unter:

0 63 49 99 07 38

0 151 51 95 34 00

Oder nutzen Sie das Kontaktformular




Ihr Ansprechpartner:


Hier sollte das Fahnungsfoto zu sehen sein.

Ralf Kunsmann

Spezialist für VBA-Programmierung
(alle Office-Anwendungen)
Entwickler der
VBA-Extension-Tools