Thema Datum  Von Nutzer Rating
Antwort
14.09.2007 10:31:30 Tina
NotSolved
17.09.2007 07:30:56 jh
NotSolved
17.09.2007 10:03:14 Tina
NotSolved
17.09.2007 10:41:03 jh
NotSolved
Rot Beispiel
17.09.2007 10:55:46 jh
NotSolved
17.09.2007 11:14:24 Tina
NotSolved
17.09.2007 12:49:27 Tina
NotSolved
17.09.2007 15:37:21 jh
NotSolved

Ansicht des Beitrags:
Von:
jh
Datum:
17.09.2007 10:55:46
Views:
1100
Rating: Antwort:
  Ja
Thema:
Beispiel
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ß

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
14.09.2007 10:31:30 Tina
NotSolved
17.09.2007 07:30:56 jh
NotSolved
17.09.2007 10:03:14 Tina
NotSolved
17.09.2007 10:41:03 jh
NotSolved
Rot Beispiel
17.09.2007 10:55:46 jh
NotSolved
17.09.2007 11:14:24 Tina
NotSolved
17.09.2007 12:49:27 Tina
NotSolved
17.09.2007 15:37:21 jh
NotSolved