Thema Datum  Von Nutzer Rating
Antwort
Rot Doppelte und verschachtelte Schleife
03.12.2014 13:08:51 PS306
NotSolved
03.12.2014 13:10:04 PS306
NotSolved
03.12.2014 14:30:01 Gast58573
NotSolved

Ansicht des Beitrags:
Von:
PS306
Datum:
03.12.2014 13:08:51
Views:
1197
Rating: Antwort:
  Ja
Thema:
Doppelte und verschachtelte Schleife
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.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Doppelte und verschachtelte Schleife
03.12.2014 13:08:51 PS306
NotSolved
03.12.2014 13:10:04 PS306
NotSolved
03.12.2014 14:30:01 Gast58573
NotSolved