Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1764to1768
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
Inhaltsverzeichnis

Schleife erstellen

Schleife erstellen
13.06.2020 21:27:10
Richi
Hallo zusammen
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

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife erstellen
13.06.2020 22:10:52
onur
1) Du musst nicht für jeden Wert eine eigene Variable nehmen - blickt doch keiner mehr durch.
2) In einer Schleife benutzt man die Laufvariable (in deinem Falle iW), die sich ja ändert.
Aber du VERWENDEST iW überhaupt nicht.
z.B. um in alle Zellen von A1 bis A20 ein "test" hineinzuschreiben:
For z=1 to 20
Cells(z,1)="test"
Next z

AW: Schleife erstellen
13.06.2020 22:45:35
Richi
Danke für deine Hilfe. Wie geht das, wenn die Wochenzahl sich ändert, die Schleife von neuem beginnt bis zur nächsten Woche usw. bis alle Spalten durchlaufen und die entsprechenden Spalten verbunden sind.
Liebe Gruess Richi
Anzeige
AW: Schleife erstellen
13.06.2020 22:47:15
onur
Woher soll ich das wissen? Ich kenne deine Dastei ja nicht.
AW: Schleife erstellen
13.06.2020 22:51:09
Richi
Die habe ich ja beigefügt
AW: Schleife erstellen
13.06.2020 22:56:59
onur
Ich habe keine Lust deinen recht wirren Code zu entwirren - welche Zellen sollen denn immer verbunden werden?
AW: Schleife erstellen
13.06.2020 23:05:13
Richi
Zeile 9 (Datum) all diejenigen in der selben Kalenderwoche, sollen verbunden werden.
Bin Anfänger und hab mir das alles irgendwo aus dem Netz zusammengetragen. War schon echt stolz darüber, dass ich eine Woche verbinden. Das dieser offensichtlich sehr verwirrend ist tut mit leid. Ich kanns noch nicht besser!
Anzeige
AW: Schleife erstellen
13.06.2020 23:07:08
onur
Zeile 9 ?
Meinst du nicht 8?
Bei 9 siehst du immer nur noch das erste Datum.
AW: Schleife erstellen
13.06.2020 23:11:13
Richi
In Zeile 9 ist das Datum indem ich berechne welche Kalenderwoche dahinter steht und in Zeile 8 sollen die Spalten verbunden werden
AW: Schleife erstellen
13.06.2020 23:15:31
onur
WARUM SCHREIBST DU DENN DANN:
"Zeile 9 (Datum) all diejenigen in der selben Kalenderwoche, sollen verbunden werden." ?
AW: Schleife erstellen
13.06.2020 23:20:45
Richi
Bin Schweizer mein Hochdeutsch ist begrenzt.
Weil die Zeile 9 die Referenz ist um die Kalenderwoche für jeden Tag zu ermitteln. sobald die sich aus dem Datum die Kalenderwoche verändert soll ab dieser Spalte in Zeile 8 wieder mit einer neuen Verbindung begonnen werden. Dies so lange bis sich die Kalenderwoche wieder ändert....
Anzeige
AW: Schleife erstellen
13.06.2020 23:23:05
onur
Wusste nicht, dass man in der Schweiz "Zeile 9" schreibt, wenn man "Zeile 8" meint.
AW: Schleife erstellen
13.06.2020 23:29:32
Richi
Halt STOP....! Lass mich von dir nicht beleidigen.
Nochmals die Zeile 9 widerspiegelt das Referenzdatum aus welchem ich die Kalenderwoche ermittle. Über eine Schleife versuchte ich zu ermitteln ab welcher Spalte das Kalenderdatum ändert. Diese Beiden Spalten Anfang und Ende definieren den Range in Zeile 8 welche miteinander verbunden werden sollen. Wenn dies erledigt ist, soll der nächste Range mittels Zeile 9 ermittelt werden. Dies solange bis ich die letzte beschriebene Spalte erreicht habe.
AW: Schleife erstellen
13.06.2020 23:38:22
onur
Spinnst du jetzt ? Was für eine Beleidigung den?
Wenn ich dir eine einfache Frage stelle: "welche Zeile soll verbunden werden" ? ist doch die einzige richtige Antwort: "ZEILE 8" - oder?
Ich habe weder nach irgendwelchen Referenzdaten oder sonst irgendwas gefragt!
Schiebe nicht dauernd ales auf deine schweizer Muttersprache oder mangelnde VBA-Kentnisse, wenn du es offensichtlich einfach nicht nötig hast, dir gestellte Fragen richtig zu LESEN und sie korekt zu beantworten !
Anzeige
AW: Schleife erstellen
13.06.2020 23:55:18
Richi
Spinne nicht. Hab dir deine Fragen korekt beantwortet. Bye the Way I'm proud to be Swiss. Schöne Nacht noch.
AW: Schleife erstellen
13.06.2020 23:27:52
onur
Das hier reicht völlig:
Public Sub Test002()
Dim sp, anf, ende
anf = 4: ende = 4
With Sheets("Kalender")
For sp = 4 To 400
If .Cells(8, sp)  "" Then
Application.DisplayAlerts = False
If anf  ende Then .Range(.Cells(8, anf), .Cells(8, ende)).Merge
anf = sp: ende = sp
Else
If .Cells(9, sp)  "" Then ende = ende + 1
If ende - anf > 7 Then Exit Sub
End If
Next sp
End With
End Sub

AW: Schleife erstellen
13.06.2020 23:38:09
Richi
Besten Dank. Dieser Code funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige