Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
360to364
360to364
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellinhalte in bestimmte Zelle in anderes Blatt

Zellinhalte in bestimmte Zelle in anderes Blatt
14.01.2004 17:07:25
Stefan
Hallo,
ich bräuchte mal wieder Eure Hilfe.
Ich müsste bestimmte Inhalte von Zellen in Blatt "Übersicht" in bestimmte Zellen in Blatt Woche-1 oder Woche-2 usw. übertragen haben, wenn ich sie in Blatt Übersicht eintrage.
Hier leigt meine Exceldatei mal zum Verständnis
https://www.herber.de/bbs/user/2948.xls
Vielen Dank schon mal
MfG Stefan
Mit folgendem Makro stoße ich aber ab einen bestimmten Zeitpunkt an die Grenze.


Private Sub Worksheet_Change(ByVal Target As Range)
' 1 *** Woche-1
If Target.Address = "$C$5" Then
Select Case Target.Value
Case "O"
Worksheets("Woche-1").[C8] = 0
Case "U"
Worksheets("Woche-1").[C10] = "U"
Case "FB"
Worksheets("Woche-1").[C10] = "FB"
Case "S"
Worksheets("Woche-1").[C8] = "7:42"
Worksheets("Woche-1").[C10] = "S"
Case ""
Worksheets("Woche-1").[C10] = ""
Worksheets("Woche-1").[C8] = ""
Case Else
Worksheets("Woche-1").[C8] = ""
End Select
End If
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalte in bestimmte Zelle in anderes Blatt
15.01.2004 21:02:02
Beni
Hallo Stefan,
ich habe Dir die Datei angefügt.
Gruss Beni
https://www.herber.de/bbs/user/2982.xls

Private Sub Worksheet_Change(ByVal Target As Range)
r = Target.Row
c = Target.Column 'c5
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
For t = 3 To c
k = (c - 3) * 2 + 3
For s = 3 To 44
h = 1
For z = 5 To 20
h = h + 1
If r = z And c = s Then
h = h * 4
k = k - kw
Select Case Target.Value
Case "O"
Worksheets("Woche-" & w).Cells(h, k) = 0
Exit Sub
Case "U"
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = "U"
h = h + 2
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 ""
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = ""
Worksheets("Woche-" & w).Cells(h, k) = ""
Case Else
Worksheets("Woche-" & w).Cells(h, k) = ""
End Select
End If
Next z
Next s
Next t
End Sub

Anzeige
AW: Zellinhalte in bestimmte Zelle in anderes Blatt
15.01.2004 23:44:02
Stefan
Hallo Beni,
vielen herzlichen Dank, ist ja genial. Das hätte ich alleine nicht rausbekommen.
Kannst Du mir vielleicht noch kurz erklären, was da was bewirkt? Nur falls ich was ergänzen oder ändern müsste? Wäre echt ganz toll.
Vielen dank Gruß
Stefan
AW: Noch ein Problem entdeckt
15.01.2004 23:48:42
Stefan
Hi Beni,
ich habe gerade noch ein kleines Problem entdeckt.
Wenn ich in der Übersicht etwas eingetragen habe und wieder löschen muss, dann löscht er es nicht unbedingt in den Wochenblättern. Bsp. "S" oder "O". Also bei "S" löscht er das S zwar aber nicht die 7:42 und bei "O" löscht er nicht die 0:00. Kann man das auch noch lösen?
Vielen Dank.
Stefan
Anzeige
AW: Noch ein Problem entdeckt
16.01.2004 18:31:47
Beni
Hallo Stefan,
die Erklärung kommt gleich.
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
r = Target.Row
c = Target.Column 'c5
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
For t = 3 To c
k = (c - 3) * 2 + 3
For s = 3 To 44
h = 1
For z = 5 To 20
h = h + 1
If r = z And c = s Then
h = h * 4
k = k - kw
Select Case Target.Value
Case "O"
Worksheets("Woche-" & w).Cells(h, k) = 0
Exit Sub
Case "U"
h = h + 2
Worksheets("Woche-" & w).Cells(h, k) = "U"
h = h + 2
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
Next z
Next s
Next t
End Sub

Anzeige
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

Anzeige
AW: Problem behoben&Erklärung Vielen Dank!!!
18.01.2004 00:59:17
Stefan
Hallo Beni,
vielen herzlichen Dank funktioniert wunderbar. Du hast mir wirklich sehr geholfen.
Auch dass Du dir die Mühe gemacht hast mir als Laien noch eine Erklärung zu liefern. Die muss ich mir dann mal in Ruhe anschauen, aber auf den ersten Blick verstehe ich schon die Systematik.
MfG
Stefan

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige