AW: Erklärung
16.01.2004 19:50:34
Beni
Hallo Stefan,
ich hoffe mit dieser Erklärung einen weiteren Einblick in VBA verschaffte zu haben.
Gruss Beni
Private Sub Worksheet_Change(ByVal Target As Range)
'wo wird etwas verändert
r = Target.Row
c = Target.Column
'w ist für Woche, je nach Spalte wird es in eine andere Woche eingetragen.
'weil die Spalten in den Wochenblätter un zwei erhöhen, Bsp. wenn der Eintag in C ist,
'wird im Wochenblatt in C eingtragen, ist der Eintrag in D, wird im Wochenblatt in E eingetragen,
'siehe ((1))
'ist der Eintrag in J, kommt der Eintrag in eine neue Woche in C,
'also muss die Aufsumierung wider abgezogen werden, für das ist das kw
w = 1
kw = 0
If c > 9 And c < 17 Then
w = 2
kw = 14
End If
If c > 16 And c < 24 Then
w = 3
kw = 28
End If
If c > 23 And c < 31 Then
w = 4
kw = 42
End If
If c > 30 And c < 38 Then
w = 5
kw = 56
End If
If c > 37 And c < 45 Then
w = 6
kw = 70
End If
'hier beginnt eine Schleife seitlich, also die Spalten, ist der Eintrag in C,
'also die 3, so wird die Schleife nur einmal durchlaufen, weil c auch 3 ist
For t = 3 To c
'((1)) wenn in C der Eintrag ist, c = 3 - 3 gibt 0 * 2 gibt 0 + 3 ist 3 Spalte3 = C
'wenn in D der Eintrag ist, c = 4 - 3 gibt 1 * 2 gibt 2 + 3 ist 5 Spalte5 = E usw.
k = (c - 3) * 2 + 3
'hier die Schleife von SpalteC = 3 bis SpalteAR = 44
For s = 3 To 44
h = 1
'hier die Schleife von Zeile5 bis Zeile20
For z = 5 To 20
h = h + 1
'hier läuft die Schleife bis sie den gleichen Wert hat wie r
If r = z And c = s Then
'weil sich in den Wochenblätter gegenüber der der Uebesicht, die Zeile vervierfacht,
'Uebersicht Zeile5 = Wochenblatt Zeile8
'Uebersicht Zeile6 = Wochenblatt Zeile12
h = h * 4
k = k - kw
Select Case Target.Value
Case "O"
'je nach Spalte in der Uebersicht wird mit w die Woche ermittelt, darum ("Woche-" & w)
'im laufe der Prozedur wurde die mit h die Zeile ermittelt und k die Spalte
Worksheets("Woche-" & w).Cells(h, k) = 0
Exit Sub
Case "U"
'je nach Eintrag, muss der Wert h um 2 erhöht werden
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = "U"
h = h + 2
'hier wird die Prozedur beendet
Exit Sub
Case "FB"
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = "FB"
Exit Sub
Case "S"
Worksheets("Woche-" & w).Cells(h, k) = "7:42"
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = "S"
Exit Sub
Case ""
Worksheets("Woche-" & w).Cells(h, k) = ""
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = ""
Case Else
Worksheets("Woche-" & w).Cells(h, k) = ""
End Select
End If
'mit mehreren Schleifen in einander ist es wie mit einer Zwiebel,
'die Letzte wird zuerst beendet und die Erste zuletzt
Next z
Next s
Next t
End Sub