Anzeige
Archiv - Navigation
1504to1508
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
Schleife mit einer Variable als Datum
25.07.2016 07:07:42
NiSt
Hallo zusammen,
ich versuche schon seit Freitag dieses Problem zu lösen.
Ich möchte gerne eine Variable k als Schleife laufen lassen.
Diese Variable ist ein Anfangsdatum, dass sich in Zelle N2 befindet. Jetzt soll k vom Anfangsdatum bis zum Enddatum, dass sich in Zelle O2 befindet, laufen.
Kann mit jmd. weiterhelfen?
Vielen Dank schon mal und viele Grüße
Niko

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife mit einer Variable als Datum
25.07.2016 07:26:44
baschti007
Huhu vielleicht so ?
Gruß Basti
Sub LoopI()
Range(Range("K1"), Range("K1").End(xlDown)).ClearContents
x = 1
Do
Range("K" & x) = Range("N2") + x - 1
If Range("N2") + x - 1 = Range("O2") Then Exit Do
x = x + 1
Loop
End Sub

AW: Schleife mit einer Variable als Datum
25.07.2016 08:13:06
UweD
Hallo
hier als "richtige Schleife"
Sub Schleife()
    Dim K As Date, von As Date, bis As Date
    With Sheets("Tabelle1")
        von = .Range("N2")
        bis = .Range("O2")
        For K = von To bis
            'mach was damit 
            MsgBox K
        Next
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD
Anzeige
AW: Schleife mit einer Variable als Datum
25.07.2016 08:39:26
NiSt
Super!
Funktioniert UweD.
Vielen Dank!
Danke für die Rückmeldung owT
25.07.2016 09:25:34
UweD
AW: Danke für die Rückmeldung owT
25.07.2016 10:12:35
NiSt
Hallo UweD,
bei der Filterfunktion findet er mein Datum nicht, da dieses auf dem Deutschen Standard eingestellt ist und die Filterfunktion nach dem Amerikanischen Standard abläuft.
Wie kann ich das ändern?
Ich möchte gerne die Deutsche Schreibweise beibehalten.
Grüße
AW: Danke für die Rückmeldung owT
25.07.2016 10:25:15
UweD
dann so
Sub Schleife()
    Dim K As Date, von As Date, bis As Date
    With Sheets("Mitarbeiter 1")
        von = .Range("N2")
        bis = .Range("O2")
        For K = von To bis
            .Range("A2:K2").AutoFilter Field:=7, Criteria1:=Format(K, "DD/MM/YYYY")
        Next
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD
Anzeige
AW: Danke für die Rückmeldung owT
25.07.2016 10:29:19
NiSt
Perfekt!
Danke! Läuft!
prima!
25.07.2016 10:43:04
UweD
AW: Danke für die Rückmeldung owT
25.07.2016 11:00:52
NiSt
Vielleicht kannst du mir ja weiterhelfen...
Ich lese aus einer Liste die Anzahl der Mitarbeiter raus und generiere der Anzahl entsprechend neue Sheets mit Namen der Mitarbeiter (Mitarbeiter1, Mitarbeiter2,...). In diesen Sheets sind Daten drin, die nach Tagen sortiert sind. Jetzt generiere ich noch die Anzahl an Tagen die der Mitarbeiter arbeiten muss, hier die Variable "j", und auch dementsprechend der Anzahl der Tage werden weitere Sheets angelegt, die hinter den Sheet des demensprechenden Mitarbeiters angelegt werden. Soweit funktioniert das auch alles schon. Was ich nicht hinbekomme ist die Zuteilung der Arbeitspakete, die der einzelne Mitarbeiter pro Tag abzuleisten hat. Kannst du mir da weiterhelfen?
Hier ist der bereits geschriebene Code:
Dim j As Integer, i As Integer
Dim K As Date, von As Date, bis As Date, bis2 As Integer
For i = 1 To Range("I1") 'Anzahl Mitarbeiter
With Sheets("Mitarbeiter i")
von = .Range("O2")
bis = .Range("O2")
For K = von To bis 'Datum von bis
bis2 = .Range("Q2")
For j = 1 To bis2 'Anzahl Tage, die der Mitarbeiter arbeiten muss
ActiveWorkbook.Worksheets("Mitarbeiter 1").Range("A2:K2").AutoFilter Field:=8, Criteria1:=Format(K, "DD/MM/YY")
ActiveWorkbook.Worksheets("Mitarbeiter 1").Range("A2:K2").AutoFilter Field:=10, Criteria1:=i
ActiveWorkbook.Worksheets("Mitarbeiter 1").Range("A:R").Copy
Selection.AutoFilter
ActiveWorkbook.Worksheets("M1T" & j).SpecialPaste xlPasteValues
Next
Next
End With
Next
End Sub
Anzeige
AW: Beispieldatei
25.07.2016 12:59:15
UweD
Hallo nochmal
ist die Zuteilung der Arbeitspakete, die der einzelne Mitarbeiter pro Tag abzuleisten hat.
Da blicke ich noch nicht durch..
Hast du mal eine Musterdatei mit entsprechenden Tabellen und einer Solldarstellung, wie du es später haben möchtest.
Gruß UweD
AW: Beispieldatei
25.07.2016 14:23:12
NiSt
Hier habe ich dir meine Tabelle aufgearbeitet:
https://www.herber.de/bbs/user/107225.xlsm
Also Mitarbeiter 1 hat in diesem Fall drei Arbeitspakete an drei Tagen.
Dieser Anzahl entsprechend wurden drei Sheets für Mitarbeiter1 angelegt. Für Tag1 (M1T1), für Tag2 (M1T2) und für Tag3 (M1T3). Die Arbeitspakete sollen mit Abhängigkeit des Datums den jeweiligen Tag zugeordnet werden.
Spalte N bis Q habe ich mir noch dementsprechend Hilfszellen gemacht um die Anzahl der Tage als Zahl zu bekommen.
Vielen Dank schon mal für deine Bemühungen.
Anzeige
AW: Beispieldatei
25.07.2016 15:03:42
UweD
Hallo
Private Sub CommandButton1_Click()

    Dim j As Integer, i As Integer
    Dim K As Date, von As Date, bis As Date, bis2 As Integer

    For i = 1 To Range("I1")
        With Sheets("Mitarbeiter " & i)
            von = Int(.Range("O2")) 'Zeit wird abgeschnitten 
            bis = Int(.Range("O2"))
            LR = .Cells(.Rows.Count, "B").End(xlUp).Row 'letzte Zeile der Spalte 
            For K = von To bis
                bis2 = .Range("Q2")
                For j = 1 To bis2
                    .Range("A2:K2").AutoFilter Field:=7, Criteria1:=Format(K, "DD/MM/YY") 'Spalte G ohne Zeit 
                    .Range("A2:K2").AutoFilter Field:=10, Criteria1:=i
                    .Range("A1:R" & LR).Copy Worksheets("M1T" & j).Range("A1")
                    .ShowAllData
                Next
            Next
          End With
    Next
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Das filtern in der Datei klappte nicht, weil du nicht nur Datum, sondern auch noch Zeiten enthalten hast.
in I1 habe ich mal einen Wert 3 eingetragen, dann klappt es für Mitarbeiter 1
Bei Mitarbeiter 2 hats du einen Anderen Aufbau...
Gruß UweD
Anzeige
AW: uppps
25.07.2016 15:31:43
UweD
hab gerade gemerkt, das dass mit der geschachtelten for Schleife nicht klappt.
so ?
Private Sub CommandButton1_Click()

    Dim j As Integer, i As Integer
    Dim K As Date, von As Date, bis As Date, bis2 As Integer

    For i = 1 To Range("I1")
        With Sheets("Mitarbeiter " & i)
            von = Int(.Range("O2")) 'Zeit wird abgeschnitten 
            bis = Int(.Range("P2"))
            LR = .Cells(.Rows.Count, "B").End(xlUp).Row 'letzte Zeile der Spalte 
            j = 0
            For K = von To bis
                j = j + 1
                .Range("A2:K2").AutoFilter Field:=7, Criteria1:=Format(K, "DD/MM/YY") 'Spalte G ohne Zeit 
                .Range("A2:K2").AutoFilter Field:=10, Criteria1:=i
                .Range("A1:R" & LR).Copy Worksheets("M" & i & "T" & j).Range("A1")
                .ShowAllData
            Next
          End With
    Next
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD
Anzeige
AW: uppps
26.07.2016 10:01:38
NiSt
Ja super!!
Das klappt schon mal.
Vielen vielen Dank!
AW: uppps
26.07.2016 10:39:20
NiSt
Moin Uwe,
wieso macht er das für den Mitarbeiter zwei nicht?
AW: uppps
26.07.2016 11:00:34
UweD
Hi
in deiner Mustermappe ist der Aufbau der Tabellen unterschiedlich.
Gruß UweD
AW: uppps
26.07.2016 11:08:16
NiSt
Ok, dann schaue ich mir das noch mal an.
AW: Schleife mit einer Variable als Datum
25.07.2016 08:22:41
NiSt
Hey Basti,
vielen Dank schon mal für deine Antwort!
Wenn ich das so übernehme, rechnet er sich tot.
K1 brauche ich gar nicht.
Ich brauche erst ein mal eine Schleife für ein Datum, dass von einem Anfangsdatum (Zelle N2) bis zu einem Enddatum (Zelle O2) läuft und das möchte ich dann in eine Filterfunktion einbauen, die wie folgt ausschaut:
ActiveWorkbook.Worksheets("Mitarbeiter 1").Range("A2:K2").AutoFilter Field:=7, Criteria1:=k
Das Kriterium k soll hier mit der Schleife laufen.
Grüße!!
Anzeige
AW: Schleife mit einer Variable als Datum
25.07.2016 08:20:56
Beverly
Hi Niko,
Sub Schleife()
Dim lngZaehler As Long
For lngZaehler = 0 To Range("O2") - Range("N2")
MsgBox Range("N2") + lngZaehler
Next lngZaehler
End Sub


300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige