Ich komme beim Erstellen einer Schleife nicht weiter.
Ich will Zellenverbindungen von Kalenderwochen machen. Als Referenz bediene ich mich über das jeweilige Datum. Die erste Woche kann ich darstellen. Wie ich jedoch eine Schleife so bauen kann, dass sie so lange weiter läuft bis ich an der letzteen Spalte ankomme finde ich nicht heraus.
Wer kann mir da weiter helfen?
Liebe Gruess Richi
https://www.herber.de/bbs/user/138266.xlsm
Option Explicit
Sub Test001()
Dim wb As Workbook 'Datei
Dim ws As Worksheet 'Tabelle
Dim iW As Integer 'Loop _
indikator Woche
Dim iM As Integer 'Loop _
indikator Monat
Dim iJ As Integer 'Loop _
indikator Jahr
Dim letzteSpalte As Long 'Letzte _
Spalte
Dim letzteZeile As Long 'Letzte _
Zeile
Dim SpalteRef As Long 'Referent _
Start Spalte
Dim ZeileRef As Long 'Referenz _
Start Zeile
Dim ZeileW As Long 'Zeile Woche
Dim ZeileM As Long 'Zeile Monat
Dim ZeileJ As Long 'Zeile Jahr
Dim ZählerW As Long 'Zähler _
Wochen interval
Dim SpalteWNext As Long 'Zähler nä _
chster Spalte Start Woche
Dim ZeileTest As Long 'Zeile Test _
umm Verbindung zu Simulieren
Set wb = ThisWorkbook 'Geöffnete _
Datei
Set ws = Worksheets("Kalender") 'Tabelle
SpalteRef = 4 'Referenz _
Start Spalte
SpalteWNext = 0 'Referenz _
initialer Spalten Zähler
ZeileRef = 9 'Referenz _
Start Zeile
ZeileW = 8 'Zeile Woche
ZeileM = 7 'Zeile Monat
ZeileJ = 6 'Zeile Jahr
ZählerW = 1 'Zähler _
Woche
ZeileTest = 26 'Zeile Test _
umm Verbindung zu Simulieren
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'Letzte _
beschriebene Zeile in Spalte A ermitteln
letzteSpalte = ws.Cells(9, ws.Columns.Count).End(xlToLeft).Column 'letzte _
Spalte ermitteln
Range(ws.Cells(ZeileJ, SpalteRef), ws.Cells(ZeileTest, letzteSpalte)).UnMerge ' _
Spaltenverbindung auflösen für Jahr Monat und Woche
'Verschachtelung um die jede Woche zu verbinden.....! Hier komm ich nicht weiter....
For iW = 1 To letzteZeile 'Loop Zeile _
Woche verbinden
If ws.Application.WorksheetFunction.WeekNum(ws.Cells(ZeileRef, SpalteRef), 21) = ws. _
Application.WorksheetFunction.WeekNum(Cells(ZeileRef, (SpalteRef + ZählerW)), 21) Then
ZählerW = ZählerW + 1
SpalteWNext = SpalteRef + ZählerW
Range(ws.Cells(ZeileTest, SpalteRef), ws.Cells(ZeileTest, SpalteRef + ZählerW - 1)). _
Select
With Selection
.MergeCells = False
End With
Selection.Merge
End If
If ws.Application.WorksheetFunction.WeekNum(ws.Cells(ZeileRef, SpalteRef), 21) ws. _
Application.WorksheetFunction.WeekNum(ws.Cells(ZeileRef, SpalteRef + ZählerW), 21) Then Exit For
Next iW
'Hilfsdaten zur Visualisierung der Variablen
ws.Cells(14, 2).Value = letzteZeile
ws.Cells(15, 2).Value = letzteSpalte
ws.Cells(20, 2).Value = ZeileW
ws.Cells(21, 2).Value = ZeileM
ws.Cells(22, 2).Value = ZeileJ
ws.Cells(23, 2).Value = Application.WorksheetFunction.WeekNum(Cells(9, 4), 21)
ws.Cells(24, SpalteRef + ZählerW).Value = "Next / " & ZählerW
ws.Cells(24, SpalteRef).Value = "start"
ws.Cells(25, 2).Value = SpalteWNext
End Sub