92 Aufrufe
Gefragt in Tabellenkalkulation von
Bearbeitet von mickey

Guten Morgen,

ich habe folgende VBA welche auch prima funktioniert:

Dim lng_zeile As Long
Sheets("Tabelle1").Select
Application.CutCopyMode = False
lng_zeile = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:H" & lng_zeile), , xlYes).Name _
= "Tabelle1"
ActiveSheet.ListObjects("Tabelle1").ShowTotals = True
Range("E2").Select

End Sub

Nun möchte ich aber noch folgenden Befehl einbauen:

"WENN in Zelle D2 kein Datum steht, DANN ergänze das heutige Datum SONST lass das den Wert bestehen" und erweitere diese Formel auf die gesamte Spalte (bis Tabellenende).

Leider stehe ich echt auf dem Schlauch :-)

Ich danke euch herzlich im voraus!

Viele Grüße

Sandra

*Admininfo: Bitte vermeide doppelte Anfragen unter verschiedenen Nicknamen.

4 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.4k Punkte)

Hi Sandra,

das Datum eintragen kann man so:

If Not IsDate(Range("D2")) Then
    Range("D2").NumberFormat = "dd.mm.yyyy"
    Range("D2") = Date
End If

Aber was meinst du mit "...erweitere diese Formel auf die gesamte Spalte (bis Tabellenende)..."? Das Datum ist doch keine Formel. Und außerdem: wenn in D2 eine Formel steht, dann wird sie doch automatisch immer weitergeschrieben, sobald eine neue Zeile hunzukommt.

Bis später, Karin

0 Punkte
Beantwortet von sneu Einsteiger_in (5 Punkte)
Hallo Karin,

vielen Dank für deine Antwort. Mein Problem: ich ziehe Daten aus einer Software. Wenn ich eine intelligente Tabelle erstelle, erkennt die Tabelle beim Auslösen aus der Software nicht, dass neue Daten dazu kommen. Die intelligente Tabelle muss praktisch bei jedem Datenabruf "neu" erstellt werden, daher mein o.g. Code. Gleichzeitig habe ich eine Spalte, in der entweder ein Datum steht, oder eben keins. Daher muss die Formel =WENN(D2="";HEUTE();D2) jedes mal wieder auf die gesamte Tabelle ausgeweitet werden, da auch neue Daten dazu kommen.

Einmal Tabelle anlegen und dann automatisch erweitern funktioniert i.d. Fall leider nicht :-/

Liebe Grüße & schönen Tag

Sandra
0 Punkte
Beantwortet von Einsteiger_in (5 Punkte)
Habe mich hier registriert, um die gleiche Frage zu stellen. Danke schön. arbeitete der Zeit voraus.
0 Punkte
Beantwortet von beverly_ Experte (3.4k Punkte)

Hi Sandra,

hier der Code wie ich deinen Beitrag verstanden habe:

    Dim lng_zeile As Long
    With Worksheets("Tabelle1")
        lng_zeile = .Cells(Rows.Count, 1).End(xlUp).Row
        .ListObjects.Add(xlSrcRange, .Range(.Cells(1, 1), .Cells(lng_zeile, 8)), , xlYes).Name = "Tabelle1"
        .ListObjects("Tabelle1").ShowTotals = True
        If .Range("D2") = "" Then .Range("D2") = Date
        .Range("E2").Formula = "=IF(D2="""",TODAY(),D2)"
        .Range("E2").AutoFill Destination:=.Range(.Cells(2, 5), .Cells(lng_zeile, 5))
    End With

Bis später, Karin

...