1.8k Aufrufe
Gefragt in Tabellenkalkulation von florian1010 Mitglied (754 Punkte)
Hallo Zusammen,

ich möchte die Kalenderwoche aus dem Datum aus Spalte G in Spalte H widergeben.

Den Code, den ich verwende, sucht jedoch alle Zeilen ab. Ich möchte, um Zeit zu sparen, nur die aktive Zeile ansprechen.

Könnt ihr mir dabei helfen?


Sub kw()

Dim zelle As Range
Dim z As Integer

For Each zelle In Worksheets(1).Range("G:G").Cells
If IsDate(zelle.Value) = True Then
Worksheets(1).Cells(zelle.Row, 8).Value = WorksheetFunction.WeekNum(zelle.Value, 1)
End If
Next zelle
End Sub



Vielen Dank schon im voraus.

Gruß
Florian

4 Antworten

0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Warum nimmst du hier nicht einfach eine Formel?
in H1 eingeben:
=KALENDERWOCHE(G1)

und dann soweit nach unten ausfüllen, wie du es brauchst.
Um die Null bei leerem Datum auszublenden kann man noch ein Wenn-Dann drumherum
basteln:
=WENN(ISTLEER(G1);" ";KALENDERWOCHE(G1))


Gruß Flupo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Florian,

mein Vorschlag:

Option Explicit

Sub kw()
With Worksheets(1)
If IsDate(.Range("G" & ActiveCell.Row)) = True Then
.Range("H" & ActiveCell.Row) = WorksheetFunction.WeekNum(.Range("G" & ActiveCell.Row), 1)
End If
End With
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von florian1010 Mitglied (754 Punkte)
Hallo Flupo,

du hast Recht. Mit der Formel wäre die Sache recht einfach abgewickelt. Nur läuft die KW- und Jahr-Ausweisung über eine UserForm. Die Tabelle an sich ist recht umfangreich und ich möchte zudem einen Zirkel verhindern. Ich lasse schon mit einer Formel die KW und das Jahr in ein Datum zurück rechenen.

Hättest du einen einfachen Vorschlag - wenn möglich gleich mit Erklärung. Ich hab es mit With active.row versucht, bin daran aber kleglich gescheitert.

Gruß
Florian
0 Punkte
Beantwortet von florian1010 Mitglied (754 Punkte)
Hallo Rainer,

Funktioniert - Vielen Dank.

Gruß
Florian
...