Tina schrieb am 17.09.2007 11:14:24:
 
 jh schrieb am 17.09.2007 10:55:46:
 
 Hallo noch mal,
 
 damit wir nicht noch lange hin und her schreiben, am besten hier ein Beispiel, ob du es verwenden kannst oder willst, musst du selbst sehen.
 
 Damit du die Checkboxen nicht von Hand in dein Worksheet basteln musst, hier eine Sub, die das erledigt. Du brauchst sie nur einmal und kannst sie danach wieder löschen. Mache vorsichtshalber eine Sicherheitskopie von deiner Datei, bevor du sie aufrufst.
 
 Sub CheckBoxenEinfuegen()
   Dim chkA As Object, rngA As Range, lngI As Long
   lngI = 1
   For Each rngA In ActiveSheet.Range("A7:D24").Cells
     Set chkA = ActiveSheet.OLEObjects.Add _
       (ClassType:="Forms.CheckBox.1", _
        Left:=rngA.Left + 1, Top:=rngA.Top + 1, _
        Height:=rngA.Height - 2, Width:=rngA.Height - 2)
     With chkA
       .Object.Caption = ""
       .Object.BackColor = vbWhite
       .LinkedCell = "IV" & CStr(lngI)
       .Object.Value = False
     End With
     ActiveSheet.Cells(lngI, 255).Value = rngA.Address
     lngI = lngI + 1
   Next rngA
 End Sub
 
 Kurz zur Erläuterung, jede Checkbox hat eine LinkedCell in der letzten Spalte des Blattes (IV), wo der aktuelle Wert der Box steht. Jeweils links daneben befindet sich die Adresse der dazugehörigen Zelle, anhand derer sie später ausgewählt werden kann.
 
 Bevor du dann deine Berechnung startest, rufst du den folgenden Code auf. Damit werden alle Zellen, in deren Checkbox sich ein Häkchen befindet, ausgewählt.
 
 Sub ZellenMitAktivierterCheckboxAuswaehlen()
   Dim strA As String, rngA As Range
   For Each rngA In ActiveSheet.Range("IV1:IV72").Cells
     If rngA.Value = True Then
       strA = strA & rngA.Offset(0, -1).Value & ","
     End If
   Next rngA
   If strA <> "" Then
     strA = Left$(strA, Len(strA) - 1)
     ActiveSheet.Range(strA).Select
   End If
 End Sub
 
 Falls du dein Makro zur Berechnung mit einer Tastenkombination aufrufst: Das funktioniert nicht, wenn zu diesem Zeitpunkt eine Checkbox den Fokus hat, weil dann die Box die Tastenkombination erhält, und die kann nix damit anfangen. In dem Fall müsstest du vorher in eine beliebige Zelle klicken, oder du legst den Code gleich auf einen CommandButton, den du in das Blatt einfügst.
 
 Gruß
 
 
 Vielen lieben dank für deine Hilfe.
 Ich probiere es einmal aus.Vielleicht geht das ja so.
 Danke.
 LG Tina
 
 Das geht nicht.Ich kann den Befehl nicht einarbeiten.Zumindest nicht so dass er funktioniert.
 was kann ich machen,dass es doch funkioniert?
      |