Hallo,
ich habe folgendes Problem.
Ich habe zwei Tabellenblätter.
Erstes Tabellenblatt:
- in Spalte A verschiedene Produktgruppen (Zeile 34-52).
- in Spalte C die Liefertermine zu den jeweiligen Produktgruppen.
- in Spalte F der Gesamtbestellwert je Produktgruppe.
- in den Spalten G-BN (Zeile 11) stehen jeweils aufeinander folgende Monate ab einem bestimmten Startdatum (Zelle I9)
Zweites Tabellenblatt:
- Hier werden die Gesamtkosten aus Tabellenblatt eins nach einem bestimmten Schlüssel aufgeteilt (Konstruktion, Lohn, Material, usw.)
- Dann werden diese Kosten auf die 6 Monate vor dem Liefertermin verteilt.
- in Spalte A von Zeile 114-131 stehen wieder die Produktgruppen
- in Spalte C die Kosten 6 Monate vor Liefertermin
- in Spalte D die Kosten 5 Monate vor Liefertermin
...
- in Spalte H die Kosten 1 Monat vor Liefertermin
Ziel:
Die einzelnen Kosten die aufgeschlüsselt und auf die 6 Monate vor LT verteilt wurden, sollen nun in Tabellenblatt eins automatisch in die richtigen Zellen eingetragen werden.
D.h.
BEispiel:
Der Liefertermin für Produkt A steht in Tabellenblatt 1 in Zelle C35 (01.12.2015).
Der Gesamtwert für Produkt A steht in Tabellenblatt 1 in Zelle F35 (2.000.000€).
Excel soll:
Monat und Jahr des Liefertermins (C35) in Zeile 11 suchen, bis er hier die Spalte mit dem passenden Datum findet.
Liefertermin ist der 1.12.2015 --> Excel findet also in R11 das Datum 12/2015 und hat somit die "Lieferspalte"
Die 2.000.000€ sind wie folgt verteilt und sollen in folgenden Zellen ausgegeben werden:
November: 1.105.000€ (----> Q35) steht in Tabellenblatt 2 in H115
Oktober: 565.000€ (----> P35) steht in Tabellenblatt 2 in G115
September: 165.000€ (---> O35) steht in Tabellenblatt 2 in F115
August: 125.000€ (---> N35) steht in Tabellenblatt 2 in E115
Soweit die Beschreibung!!!
Mein Code sieht aktuell so aus:
Sub test()
Dim i As Integer
Dim l As Integer
Dim PD As Double
PD = Cells(7, 9).Value
For l = 34 To 52
If Cells(l, 3) = "" Then
'Then was???'
Else
For i = 7 To PD + 7
Cells(l, i).Value = Cells(11, i).Value 'BEIM DATUM SOLL NUR DER MONAT UND DAS JAHR ÜBERNOMERN UND EINGETRAGEN WERDEN.'
Next
End If
Next
For l = 34 To 52
If Cells(l, 3) = "" Then
'Then was????'
Else
For i = 7 To PD + 7
If Cells(34, i).Value = Cells(34, 3).Value Then
Cells(34, i - 1).Value = Worksheets(2).Cells(114, 12).Value
Cells(34, i - 2).Value = Worksheets(2).Cells(114, 10).Value
Cells(34, i - 3).Value = Worksheets(2).Cells(114, 8).Value
Cells(34, i - 4).Value = Worksheets(2).Cells(114, 6).Value
Cells(34, i - 5).Value = Worksheets(2).Cells(114, 4).Value
Cells(34, i - 6).Value = Worksheets(2).Cells(114, 3).Value
End If
If Cells(35, i).Value = Cells(35, 3).Value Then
Cells(35, i - 1).Value = Worksheets(2).Cells(115, 12).Value
Cells(35, i - 2).Value = Worksheets(2).Cells(115, 10).Value
Cells(35, i - 3).Value = Worksheets(2).Cells(115, 8).Value
Cells(35, i - 4).Value = Worksheets(2).Cells(115, 6).Value
Cells(35, i - 5).Value = Worksheets(2).Cells(115, 4).Value
Cells(35, i - 6).Value = Worksheets(2).Cells(115, 3).Value
End If
If Cells(36, i).Value = Cells(36, 3).Value Then
Cells(36, i - 1).Value = Worksheets(2).Cells(116, 12).Value
Cells(36, i - 2).Value = Worksheets(2).Cells(116, 10).Value
Cells(36, i - 3).Value = Worksheets(2).Cells(116, 8).Value
Cells(36, i - 4).Value = Worksheets(2).Cells(116, 6).Value
Cells(36, i - 5).Value = Worksheets(2).Cells(116, 4).Value
Cells(36, i - 6).Value = Worksheets(2).Cells(116, 3).Value
End If
If Cells(37, i).Value = Cells(37, 3).Value Then
Cells(37, i - 1).Value = Worksheets(2).Cells(117, 12).Value
Cells(37, i - 2).Value = Worksheets(2).Cells(117, 10).Value
Cells(37, i - 3).Value = Worksheets(2).Cells(117, 8).Value
Cells(37, i - 4).Value = Worksheets(2).Cells(117, 6).Value
Cells(37, i - 5).Value = Worksheets(2).Cells(117, 4).Value
Cells(37, i - 6).Value = Worksheets(2).Cells(117, 3).Value
End If
If Cells(38, i).Value = Cells(38, 3).Value Then
Cells(38, i - 1).Value = Worksheets(2).Cells(118, 12).Value
Cells(38, i - 2).Value = Worksheets(2).Cells(118, 10).Value
Cells(38, i - 3).Value = Worksheets(2).Cells(118, 8).Value
Cells(38, i - 4).Value = Worksheets(2).Cells(118, 6).Value
Cells(38, i - 5).Value = Worksheets(2).Cells(118, 4).Value
Cells(38, i - 6).Value = Worksheets(2).Cells(118, 3).Value
End If
If Cells(39, i).Value = Cells(39, 3).Value Then
Cells(39, i - 1).Value = Worksheets(2).Cells(119, 12).Value
Cells(39, i - 2).Value = Worksheets(2).Cells(119, 10).Value
Cells(39, i - 3).Value = Worksheets(2).Cells(119, 8).Value
Cells(39, i - 4).Value = Worksheets(2).Cells(119, 6).Value
Cells(39, i - 5).Value = Worksheets(2).Cells(119, 4).Value
Cells(39, i - 6).Value = Worksheets(2).Cells(119, 3).Value
End If
If Cells(40, i).Value = Cells(40, 3).Value Then
Cells(40, i - 1).Value = Worksheets(2).Cells(120, 12).Value
Cells(40, i - 2).Value = Worksheets(2).Cells(120, 10).Value
Cells(40, i - 3).Value = Worksheets(2).Cells(120, 8).Value
Cells(40, i - 4).Value = Worksheets(2).Cells(120, 6).Value
Cells(40, i - 5).Value = Worksheets(2).Cells(120, 4).Value
Cells(40, i - 6).Value = Worksheets(2).Cells(120, 3).Value
End If
If Cells(41, i).Value = Cells(41, 3).Value Then
Cells(41, i - 1).Value = Worksheets(2).Cells(121, 12).Value
Cells(41, i - 2).Value = Worksheets(2).Cells(121, 10).Value
Cells(41, i - 3).Value = Worksheets(2).Cells(121, 8).Value
Cells(41, i - 4).Value = Worksheets(2).Cells(121, 6).Value
Cells(41, i - 5).Value = Worksheets(2).Cells(121, 4).Value
Cells(41, i - 6).Value = Worksheets(2).Cells(121, 3).Value
End If
If Cells(42, i).Value = Cells(42, 3).Value Then
Cells(42, i - 1).Value = Worksheets(2).Cells(122, 12).Value
Cells(42, i - 2).Value = Worksheets(2).Cells(122, 10).Value
Cells(42, i - 3).Value = Worksheets(2).Cells(122, 8).Value
Cells(42, i - 4).Value = Worksheets(2).Cells(122, 6).Value
Cells(42, i - 5).Value = Worksheets(2).Cells(122, 4).Value
Cells(42, i - 6).Value = Worksheets(2).Cells(122, 3).Value
End If
If Cells(43, i).Value = Cells(43, 3).Value Then
Cells(43, i - 1).Value = Worksheets(2).Cells(123, 12).Value
Cells(43, i - 2).Value = Worksheets(2).Cells(123, 10).Value
Cells(43, i - 3).Value = Worksheets(2).Cells(123, 8).Value
Cells(43, i - 4).Value = Worksheets(2).Cells(123, 6).Value
Cells(43, i - 5).Value = Worksheets(2).Cells(123, 4).Value
Cells(43, i - 6).Value = Worksheets(2).Cells(123, 3).Value
End If
If Cells(44, i).Value = Cells(44, 3).Value Then
Cells(44, i - 1).Value = Worksheets(2).Cells(124, 12).Value
Cells(44, i - 2).Value = Worksheets(2).Cells(124, 10).Value
Cells(44, i - 3).Value = Worksheets(2).Cells(124, 8).Value
Cells(44, i - 4).Value = Worksheets(2).Cells(124, 6).Value
Cells(44, i - 5).Value = Worksheets(2).Cells(124, 4).Value
Cells(44, i - 6).Value = Worksheets(2).Cells(124, 3).Value
End If
If Cells(45, i).Value = Cells(45, 3).Value Then
Cells(45, i - 1).Value = Worksheets(2).Cells(125, 12).Value
Cells(45, i - 2).Value = Worksheets(2).Cells(125, 10).Value
Cells(45, i - 3).Value = Worksheets(2).Cells(125, 8).Value
Cells(45, i - 4).Value = Worksheets(2).Cells(125, 6).Value
Cells(45, i - 5).Value = Worksheets(2).Cells(125, 4).Value
Cells(45, i - 6).Value = Worksheets(2).Cells(125, 3).Value
End If
If Cells(46, i).Value = Cells(46, 3).Value Then
Cells(46, i - 1).Value = Worksheets(2).Cells(126, 12).Value
Cells(46, i - 2).Value = Worksheets(2).Cells(126, 10).Value
Cells(46, i - 3).Value = Worksheets(2).Cells(126, 8).Value
Cells(46, i - 4).Value = Worksheets(2).Cells(126, 6).Value
Cells(46, i - 5).Value = Worksheets(2).Cells(126, 4).Value
Cells(46, i - 6).Value = Worksheets(2).Cells(126, 3).Value
End If
If Cells(47, i).Value = Cells(47, 3).Value Then
Cells(47, i - 1).Value = Worksheets(2).Cells(127, 12).Value
Cells(47, i - 2).Value = Worksheets(2).Cells(127, 10).Value
Cells(47, i - 3).Value = Worksheets(2).Cells(127, 8).Value
Cells(47, i - 4).Value = Worksheets(2).Cells(127, 6).Value
Cells(47, i - 5).Value = Worksheets(2).Cells(127, 4).Value
Cells(47, i - 6).Value = Worksheets(2).Cells(127, 3).Value
End If
If Cells(48, i).Value = Cells(48, 3).Value Then
Cells(48, i - 1).Value = Worksheets(2).Cells(128, 12).Value
Cells(48, i - 2).Value = Worksheets(2).Cells(128, 10).Value
Cells(48, i - 3).Value = Worksheets(2).Cells(128, 8).Value
Cells(48, i - 4).Value = Worksheets(2).Cells(128, 6).Value
Cells(48, i - 5).Value = Worksheets(2).Cells(128, 4).Value
Cells(48, i - 6).Value = Worksheets(2).Cells(128, 3).Value
End If
If Cells(49, i).Value = Cells(49, 3).Value Then
Cells(49, i - 1).Value = Worksheets(2).Cells(129, 12).Value
Cells(49, i - 2).Value = Worksheets(2).Cells(129, 10).Value
Cells(49, i - 3).Value = Worksheets(2).Cells(129, 8).Value
Cells(49, i - 4).Value = Worksheets(2).Cells(129, 6).Value
Cells(49, i - 5).Value = Worksheets(2).Cells(129, 4).Value
Cells(49, i - 6).Value = Worksheets(2).Cells(129, 3).Value
End If
If Cells(50, i).Value = Cells(50, 3).Value Then
Cells(50, i - 1).Value = Worksheets(2).Cells(130, 12).Value
Cells(50, i - 2).Value = Worksheets(2).Cells(130, 10).Value
Cells(50, i - 3).Value = Worksheets(2).Cells(130, 8).Value
Cells(50, i - 4).Value = Worksheets(2).Cells(130, 6).Value
Cells(50, i - 5).Value = Worksheets(2).Cells(130, 4).Value
Cells(50, i - 6).Value = Worksheets(2).Cells(130, 3).Value
End If
If Cells(51, i).Value = Cells(51, 3).Value Then
Cells(51, i - 1).Value = Worksheets(2).Cells(131, 12).Value
Cells(51, i - 2).Value = Worksheets(2).Cells(131, 10).Value
Cells(51, i - 3).Value = Worksheets(2).Cells(131, 8).Value
Cells(51, i - 4).Value = Worksheets(2).Cells(131, 6).Value
Cells(51, i - 5).Value = Worksheets(2).Cells(131, 4).Value
Cells(51, i - 6).Value = Worksheets(2).Cells(131, 3).Value
End If
If Cells(52, i).Value = Cells(52, 3).Value Then
Cells(52, i - 1).Value = Worksheets(2).Cells(132, 12).Value
Cells(52, i - 2).Value = Worksheets(2).Cells(132, 10).Value
Cells(52, i - 3).Value = Worksheets(2).Cells(132, 8).Value
Cells(52, i - 4).Value = Worksheets(2).Cells(132, 6).Value
Cells(52, i - 5).Value = Worksheets(2).Cells(132, 4).Value
Cells(52, i - 6).Value = Worksheets(2).Cells(132, 3).Value
End If
Next
End If
Next
For l = 34 To 52
If Cells(l, 3) = "" Then
Else
For i = 7 To PD + 7
If Cells(l, i).Value = Cells(11, i).Value Then
Cells(l, i).Value = ""
End If
Next
End If
Next
End Sub
Ich will nun den Mittelteil der so oft vorkommt in eine weitere Schleife packen das er nur einmal geschrieben werden muss. Hab das schonmal versucht, aber es funktioniert nicht. Es kommt immer eine Meldung Laufzeitfehler 424. Mein Versuch sieht wie folgt aus:
For a = 114 To 131
For l = 34 To 51
If Worksheets(2).Cells(a, 1).Value = Cells(l, 1).Value Then
If Cells(l, 3) = "" Then
Else
For i = 7 To PD + 7
If Cells(l, i).Value = Cells(l, 3).Value And Cells(a, 1).Value = Cells(l, 1).Value Then
Cells(l, i).Value = "Liefertermin"
Cells(l, i - 1).Value = Worksheets(2).Cells(a, 12).Value
Cells(l, i - 2).Value = Worksheets(2).Cells(a, 10).Value
Cells(l, i - 3).Value = Worksheets(2).Cells(a, 8).Value
Cells(l, i - 4).Value = Worksheets(2).Cells(a, 6).Value
Cells(l, i - 5).Value = Worksheets(2).Cells(a, 4).Value
Cells(l, i - 6).Value = Worksheets(2).Cells(a, 3).Value
'Schleife füllt die 6 Zellen vor der gefundenen Zelle mit den errechneten Werten aus dem zweiten Tabellenblatt.'
End If
Next
End If
End If
Next
Next
Ausführlicher kann ich mein Anliegen nicht beschreiben.
Ich hoffe es ist verständlich und ich hoffe ich finde hier die Hilfe die ich benötige.
Vielen Dank im Voraus.
|