Thema Datum  Von Nutzer Rating
Antwort
24.06.2009 12:04:01 mister-macro
NotSolved
24.06.2009 20:18:19 Holger
NotSolved
06.07.2009 09:31:28 mister-nicht-macro
NotSolved
Blau Aw:Aw:loops
06.07.2009 10:05:26 mister-macro
NotSolved

Ansicht des Beitrags:
Von:
mister-macro
Datum:
06.07.2009 10:05:26
Views:
1040
Rating: Antwort:
  Ja
Thema:
Aw:Aw:loops
Hey holger,

habe es nun eingebaut bzw. ersetzt und es funktioniert teilweise!
Dein Code ist sicherlich richtig, ich weiss nur nicht wie ich ihn einsetzten muss.

Soll ich zuerst alle " Sub Checkbox1_click()" nacheinander aufführen, und dann "Sub Checkbox_prüfen()" nur einmal am ende schreiben?

Wenn ich es so mache, dann bekomme ich immer die werte aus Checkbox_1, auch wenn ich zb. checkbox_3 anklicke!
Oder muss ich immer abwechslungsweise " Sub Checkbox1_click()", und dann das "Sub Checkbox_prüfen()" aufführen? dann erhalte ich natürlich kompilationsfehler weil die namen doppelt vorkommen.

ich vermute, das prüfen-sub arbeitet für alle chekcboxes. aber es bezieht sich immer auf "Data-sheet 1". musss ich noch irgendwelche anderen felder ausser "Data-sheet 1" anpassen??

liebe grüsse A



Holger schrieb am 24.06.2009 20:18:19:

Hallo mister-macro,
ungeprüft, aber versuche es mal:

Sub CheckBox1_Click()
Checkbox_prüfen Worksheets("Analysis").CheckBox1, 21
End Sub

Sub CheckBox2_Click()'ggf. Zahlen anopassen
Checkbox_prüfen Worksheets("Analysis").CheckBox2, 22
End Sub

'...

Sub Checkbox_prüfen(cb, n)
If cb = True Then 'data-sheet 1
b = Array(7, 10, 13, 15, 18, 19, 20, 21, 22, 65, 68, 72)
For i = 2 To 18
For j = 0 To 11
Worksheets("ZT").Cells(j * 77 + n, i) = Worksheets("data-sheet 1").Cells(b(j), i)
Next j
Next i
Else
For j = 0 To 11
Worksheets("ZT").Range("B" + CStr(j * 77 + n) + ":R" + CStr(j * 77 + n)) = 0
Next j
End If
End Sub

Gruß
Holger


mister-macro schrieb am 24.06.2009 12:04:01:

Hallo miteinander,

Ich schreibe an einem makro, das mir aus mehreren sheets daten zusammen zieht, und diese in einem "analysis-sheet" addiert.
Die daten welche zusammengeführt werden sollen, kann man im "analysis-sheet" durch kontrollkästchen auswählen.
nun habe ich ziemlich viele daten, und müsste für jedes kontrollkästchen einen riesigen code schreiben, der sich immer wiederholt für jedes kontrollkästchen, dabei ändern nur einzelne feste werte.

hier mein bisheriger code:

Sub CheckBox1_Click()
If Worksheets("Analysis").CheckBox1 = True Then 'data-sheet 1
For i = 2 To 18

Worksheets("ZT").Cells(21, i) = Worksheets("data-sheet 1").Cells(7, i)
Worksheets("ZT").Cells(98, i) = Worksheets("data-sheet 1").Cells(10, i)
Worksheets("ZT").Cells(175, i) = Worksheets("data-sheet 1").Cells(13, i)
Worksheets("ZT").Cells(252, i) = Worksheets("data-sheet 1").Cells(15, i)
Worksheets("ZT").Cells(329, i) = Worksheets("data-sheet 1").Cells(18, i)
Worksheets("ZT").Cells(406, i) = Worksheets("data-sheet 1").Cells(19, i)
Worksheets("ZT").Cells(483, i) = Worksheets("data-sheet 1").Cells(20, i)
Worksheets("ZT").Cells(560, i) = Worksheets("data-sheet 1").Cells(21, i)
Worksheets("ZT").Cells(637, i) = Worksheets("data-sheet 1").Cells(22, i)
Worksheets("ZT").Cells(714, i) = Worksheets("data-sheet 1").Cells(65, i)
Worksheets("ZT").Cells(791, i) = Worksheets("data-sheet 1").Cells(68, i)
Worksheets("ZT").Cells(868, i) = Worksheets("data-sheet 1").Cells(72, i)
Next
Else
Worksheets("ZT").Range("B21:R21") = 0
Worksheets("ZT").Range("B98:R98") = 0
Worksheets("ZT").Range("B175:R175") = 0
Worksheets("ZT").Range("B252:R252") = 0
Worksheets("ZT").Range("B329:R329") = 0
Worksheets("ZT").Range("B406:R406") = 0
Worksheets("ZT").Range("B483:R483") = 0
Worksheets("ZT").Range("B560:R560") = 0
Worksheets("ZT").Range("B637:R637") = 0
Worksheets("ZT").Range("B714:R714") = 0
Worksheets("ZT").Range("B791:R791") = 0
Worksheets("ZT").Range("B868:R868") = 0
End If

End Sub

Dieser code wiederholt sich nun für 100 weitere Kästchen.
Könnte man diesen nicht durch einen loop verkürzen, resp. vereinfachen, in dem man anstatt den zahlen "21, 98, 175, 252, 329..." so etwas wie "j = 21", "j = j+ 77"
dann müsste nur noch der ursprungswert (21) verändert werden und könnte beim Kontroll-kästchen 2 dann z.b 22 sein. die Werte "7, 10, 13, 15..." sind für jedes data-sheet die gleichen.

wäre sehr froh über ein feeback. bin ein frischling in makros...

freundliche Grüsse

Anias

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
24.06.2009 12:04:01 mister-macro
NotSolved
24.06.2009 20:18:19 Holger
NotSolved
06.07.2009 09:31:28 mister-nicht-macro
NotSolved
Blau Aw:Aw:loops
06.07.2009 10:05:26 mister-macro
NotSolved