Hi,
habe mit dem Code bisschen gespielt. Sehe ich das richtig dass mit "Tagesdaten" jeder Tag einzel festgelegt wird?
So werden also Zeilen über drei Tage in der Exceltabelle eingetragen:
Dim TagesDaten%(2, 1)
Dim d1 As Date
d1 = Date
TagesDaten(0, 0) = 3 'Anz Besuche Tag1
TagesDaten(0, 1) = 2 'Anz Personen Tag1
TagesDaten(1, 0) = 3 'Anz Besuche Tag2
TagesDaten(1, 1) = 7 'Anz Personen Tag2
TagesDaten(2, 0) = 3 'Anz Besuche Tag3
TagesDaten(2, 1) = 7 'Anz Personen Tag3
Ist es möglich die Anzahl Personen und Anzahl Besuche aus einem Feld in der Tabelle auszulesen und für jede Zeile bis zB. Zeile 1000 zu verwenden? Ich möchte nicht die Personen und Anzahl Besuche für jeden Tag einzeln festlegen.
______________________________________________________________________________________________________________________
Die Überprüfung der Wochentage (Fr-So keine Besuche möglich) gibt mir auch Kopfzerbrechen. Habe es mit einer "If...then...else Verzweigung" versucht.
Testfall (vgl. Code): wenn der Wochentag = 4 (Mittwoch), soll ein Tag (1) hinzugezählt werden und somit ein Donnerstag (5) ausgegeben werden (Mittwoch soll in diesem Testfall ausgelassen werden). Was aber nicht funktioniert, der Mittwoch erscheint trotzdem auf sechs Zeilen im Excelsheet. Welchen Überlegungsfehler mache ich im folgenden Code rund um die "If...then...else Verzweiung"?
Sub datumeintragen()
Dim a&, b&, I&, E&, LetzteZeile&
Dim TagesDaten%(4, 1)
Dim d1 As Date
d1 = Date
TagesDaten(0, 0) = 2 'Tag1, Anz Besuche pro Tag pro Person
TagesDaten(0, 1) = 3 'Tag1, Anz Personen
TagesDaten(1, 0) = 2 'Tag2, Anz Besuche pro Tag pro Person
TagesDaten(1, 1) = 3 'Tag2, Anz Personen
TagesDaten(2, 0) = 2 'Tag3, Anz Besuche pro Tag pro Person
TagesDaten(2, 1) = 3 'Tag3, Anz Personen
TagesDaten(3, 0) = 2 'Tag4, Anz Besuche pro Tag pro Person
TagesDaten(3, 1) = 3 'Tag4, Anz Personen
TagesDaten(4, 0) = 2 'Tag5, Anz Besuche pro Tag pro Person
TagesDaten(4, 1) = 3 'Tag5, Anz Personen
For I = 0 To UBound(TagesDaten) 'Durchlauf für jeden Satz an Tagesdaten
E = TagesDaten(I, 0) * TagesDaten(I, 1) 'Multiplikation von Personen und Besuchen pro Datum
For b = 1 To E 'Durchlauf von 1 bis "Ergebnis der Multiplikation"
If Weekday(d1) = 4 Then 'Prüfe ob d1 = 4 (Mittwoch)
d1 = d1 + 1 'Addiere 1 Tag zu d1
Cells(b + LetzteZeile, 1) = DateAdd("d", I, d1) 'Ausgabe von d1 als Datum
Else
Cells(b + LetzteZeile, 1) = DateAdd("d", I, d1) 'Ausgabe von d1 als Datum
End If
Next
LetzteZeile = LetzteZeile + E
Next
End Sub
Gruss
Kay