Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
524to528
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
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dringendes VBA Problem, bitte Beschreibung lesen

dringendes VBA Problem, bitte Beschreibung lesen
01.12.2004 18:45:54
Christine
Hallo!
Habe folgenden VBA Code, der auch gut funktioniert und mir in Spalte B die Kalenderwoche des Datums in Spalte A einträgt.
Ich möchte nun aber festlegen, dass es nicht bis Spalte B30 ausfüllt, sondern so lange wie in Spalte A ein Datum steht.
Mit Range B1:B65536 geht es auch nicht, da dann jede Zelle in Spalte B 1 enthält, auch wenn in A schon lange kein Datum mehr steht.
Hier der Code:
Private Sub CommandButton1_Click() Range("B1").Select ActiveCell.FormulaR1C1 = "=WeekNum(RC[-1],2)" Range("B1").Select Selection.AutoFill Destination:=Range("B1:B30"), Type:=xlFillDefault Range("B1:B30").Select End Sub
Wär super, wenn ihr mir helfen könntet.
Vielen Dank
Christine

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dringendes VBA Problem, bitte Beschreibung les
01.12.2004 19:01:00
Josef
Hallo Christine!
Nimm diesen Code und die Funktion, mit dieser stimmtauch die KW (nach DIN)!

' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub CommandButton1_Click()
Dim lEnd As Long
Dim rng As Range
lEnd = [A65536].End(xlUp).Row
For Each rng In Range("A1:A" & lEnd)
If IsDate(rng) Then rng.Offset(0, 1) = DINKwoche(rng)
Next
''oder wenn du die KW als Formel möchtest
'For Each rng In Range("A1:A" & lEnd)
'If IsDate(rng) Then rng.Offset(0, 1).FormulaLocal = "= DINKwoche(" & rng.Address & ")"
'Next
End Sub

' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
'Diesen Teil in ein allgemeines Modul

Function DINKwoche(Datum)
Dim tmp
tmp = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
DINKwoche = ((Datum - tmp - 3 + (Weekday(tmp) + 1) Mod 7)) \ 7 + 1
End Function

Gruß Sepp
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige