Autor
|
Thema: Tabellenblätter von 1 bis 30 per VBA erzeugen (3974 mal gelesen)
|
CADdoctor Mitglied Technischer Zeichner (Versorgungstechnik)
Beiträge: 313 Registriert: 12.05.2007 Software: AutoCAD MEP 2013 Excellink 2013 Windows 7 x64 Pro SP 1 Office 2010 SP 1 Mozilla Firefox 13.0.1 Mozilla Thunderbird 13.0.1<P>Hardware: ASUS P6T WS Professional Intel Core i7-920, 4x 2.67GHz PNY Quadro FX 1800 Kingston HyperX DIMM XMP Kit 6GB Kingston HyperX SSD 120GB, SATA 6Gb/s
|
erstellt am: 13. Aug. 2010 10:30 <-- editieren / zitieren --> Unities abgeben:
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 13. Aug. 2010 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für CADdoctor
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 13. Aug. 2010 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für CADdoctor
|
CADdoctor Mitglied Technischer Zeichner (Versorgungstechnik)
Beiträge: 313 Registriert: 12.05.2007 Software: AutoCAD MEP 2013 Excellink 2013 Windows 7 x64 Pro SP 1 Office 2010 SP 1 Mozilla Firefox 13.0.1 Mozilla Thunderbird 13.0.1<P>Hardware: ASUS P6T WS Professional Intel Core i7-920, 4x 2.67GHz PNY Quadro FX 1800 Kingston HyperX DIMM XMP Kit 6GB Kingston HyperX SSD 120GB, SATA 6Gb/s
|
erstellt am: 13. Aug. 2010 12:00 <-- editieren / zitieren --> Unities abgeben:
Danke Oberli Mike! Wie kann Ich deine Schleife mit meiner Summenschleife verknüpfen? Es sollen Tabellenblätter von 100 bis 120 erzeugt werden! zB.: Tabellenblatt 100 sollen die Zahlen von 1 bis 45 mit der Zahlensumme 100 stehen. Tabellenblatt 101 sollen die Zahlen von 1 bis 45 mit der Zahlensumme 101 stehen. usw. Mein Versuch die beiden Schleifen mit einander zu verbinden ist leider gescheitert! Kann mir Bitte wer weiter Helfen.
Code: Sub x() Dim a%, b%, c%, d%, e%, f%, i&, p%, z% For p = 120 To 100 Step -1 Set NewSheet = Worksheets.Add NewSheet.Name = p Next p For a = 2 To 45 If a = 3 Or a = 6 Or a = 7 Or a = 9 Or a = 18 Or a = 19 Or a = 26 Or a = 30 Or a = 33 Or a = 34 Or a = 41 Then GoTo Next_A For b = a + 2 To 45 If b = 3 Or b = 6 Or b = 7 Or b = 9 Or b = 18 Or b = 19 Or b = 26 Or b = 30 Or b = 33 Or b = 34 Or b = 41 Then GoTo Next_B For c = b + 2 To 45 If c = 3 Or c = 6 Or c = 7 Or c = 9 Or c = 18 Or c = 19 Or c = 26 Or c = 30 Or c = 33 Or c = 34 Or c = 41 Then GoTo Next_C For d = c + 2 To 45 If d = 3 Or d = 6 Or d = 7 Or d = 9 Or d = 18 Or d = 19 Or d = 26 Or d = 30 Or d = 33 Or d = 34 Or d = 41 Then GoTo Next_D For e = d + 2 To 45 If e = 3 Or e = 6 Or e = 7 Or e = 9 Or e = 18 Or e = 19 Or e = 26 Or e = 30 Or e = 33 Or e = 34 Or e = 41 Then GoTo Next_E For f = e + 2 To 45 If f = 3 Or f = 6 Or f = 7 Or f = 9 Or f = 18 Or f = 19 Or f = 26 Or f = 30 Or f = 33 Or f = 34 Or f = 41 Then GoTo Next_F If a + b + c + d + e + f = p Then i = i + 1 Cells(i, 1).Resize(, 6) = Array(a, b, c, d, e, f) End If Next_F: Next Next_E: Next Next_D: Next Next_C: Next Next_B: Next Next_A: Next End Sub
------------------ Mit freundlichen GrüßenCADdoctor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Aug. 2010 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für CADdoctor
Deine Erste Schleife erstellt 20 Blätter -End, Anschliessend läuft die 2 Schleife und erzeugt die Zahlen -End. Du musst die Zahlenerzeugung in deine erste Schleife Packen -next p, desweiteren sollte der Zähler i bei einem neuen Blatt wieder auf 0 zurückgesetzt werden. Code: Sub x() Dim a%, b%, c%, d%, e%, f%, i&, p%, z% For p = 120 To 100 Step -1 Set NewSheet = Worksheets.Add NewSheet.Name = p For a = 2 To 45 If a = 3 Or a = 6 Or a = 7 Or a = 9 Or a = 18 Or a = 19 Or a = 26 Or a = 30 Or a = 33 Or a = 34 Or a = 41 Then GoTo Next_A For b = a + 2 To 45 If b = 3 Or b = 6 Or b = 7 Or b = 9 Or b = 18 Or b = 19 Or b = 26 Or b = 30 Or b = 33 Or b = 34 Or b = 41 Then GoTo Next_B For c = b + 2 To 45 If c = 3 Or c = 6 Or c = 7 Or c = 9 Or c = 18 Or c = 19 Or c = 26 Or c = 30 Or c = 33 Or c = 34 Or c = 41 Then GoTo Next_C For d = c + 2 To 45 If d = 3 Or d = 6 Or d = 7 Or d = 9 Or d = 18 Or d = 19 Or d = 26 Or d = 30 Or d = 33 Or d = 34 Or d = 41 Then GoTo Next_D For e = d + 2 To 45 If e = 3 Or e = 6 Or e = 7 Or e = 9 Or e = 18 Or e = 19 Or e = 26 Or e = 30 Or e = 33 Or e = 34 Or e = 41 Then GoTo Next_E For f = e + 2 To 45 If f = 3 Or f = 6 Or f = 7 Or f = 9 Or f = 18 Or f = 19 Or f = 26 Or f = 30 Or f = 33 Or f = 34 Or f = 41 Then GoTo Next_F If a + b + c + d + e + f = p Then i = i + 1 Cells(i, 1).Resize(, 6) = Array(a, b, c, d, e, f) End If Next_F: Next Next_E: Next Next_D: Next Next_C: Next Next_B: Next Next_A: Next i = 0 'rücksetzen des zeilenzählers Next p End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADdoctor Mitglied Technischer Zeichner (Versorgungstechnik)
Beiträge: 313 Registriert: 12.05.2007 Software: AutoCAD MEP 2013 Excellink 2013 Windows 7 x64 Pro SP 1 Office 2010 SP 1 Mozilla Firefox 13.0.1 Mozilla Thunderbird 13.0.1<P>Hardware: ASUS P6T WS Professional Intel Core i7-920, 4x 2.67GHz PNY Quadro FX 1800 Kingston HyperX DIMM XMP Kit 6GB Kingston HyperX SSD 120GB, SATA 6Gb/s
|
erstellt am: 13. Aug. 2010 13:11 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|