Office: (Office 2016) VBA: Active Checkbox direkt ansprechen (ohne deren Nummer)

Helfe beim Thema VBA: Active Checkbox direkt ansprechen (ohne deren Nummer) in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi, ich werde die Datei garantiert nicht nachbauen, dafür ist der Aufwand zu groß und den Code kann ich so auch nicht testen. Da musst du schon mal... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von woerli, 11. Juni 2020.

  1. Beverly
    Beverly Erfahrener User

    VBA: Active Checkbox direkt ansprechen (ohne deren Nummer)


    Hi,

    ich werde die Datei garantiert nicht nachbauen, dafür ist der Aufwand zu groß und den Code kann ich so auch nicht testen. Da musst du schon mal eine Kopie deiner Mappe erstellen und alles entfernen, was nicht in Beziehung zu deinem Problem steht, auch z.B. Formelergebnisse durch Werte ersetzen, damit die Mappe kleiner wird und du sie hochladen kannst.

    Bis später,
    Karin
     
    Beverly, 12. Juni 2020
    #16
  2. woerli Erfahrener User
    Hallo Karin,

    verstehe ich und soll auch nicht notwendig sein. Ich wollte nur konkret aufzeigen um was es geht und in welcher "Umgebung" ich mich bewege, bezogen auf deine ermutigende Aussage:

    "Doch auch für Steuerelemente im Tabellenblatt gibt es Möglichkeiten. Allerdings müsste man dazu wissen, um welchen Typ es sich handelt - ActiveX-Steuerelemente oder Formularsteuerelemente. Am einfachsten macht sich so etwas, wenn man eine Beispilemappe hochlädt."

    Ergänzend dazu noch der Hinweis, dass es sich um ActiveX-Elemente handelt. Wie gesagt, es geht mir nicht darum das gesamte Dokument mit dem neuen Code in diesem Thread zum laufen zu bringen, sondern lediglich das Grundproblem des Threads zu lösen. Also wie ich in dem Beispiel die Checkboxen "automatisiert" ansprechen kann, ohne immer den individuellen Namen+Nummer konkret vorschreiben zu müssen.
    Dann kann ich selbstständig:
    - den gesamten Code verkürzen
    - darauf verzichten, jeder Checkbox eine Zelle mit einem Bool-Wert zuzuweisen

    Viele Grüße und einen angenehmen Abend
    Holger
     
    woerli, 12. Juni 2020
    #17
  3. Beverly
    Beverly Erfahrener User
    Hi Holger,

    hier ein Code, wie man AxtiveX-Steuerelemente des Tabellenblattes in einer Schleife durchläuft, feststellt ob es sich um eine CheckBox handelt und wenn ja dann eine MsgBox anzeigt wenn die CheckBox aktiviert ist:

    Code:
        Dim oobElement As OLEObject
        For Each oobElement In ActiveSheet.OLEObjects
            If oobElement.progID = "Forms.CheckBox.1" Then
                If oobElement.Object Then MsgBox oobElement.Name & " ist aktiviert"
            End If
        Next oobElement
    
    
    Bis später,
    Karin
     
    Beverly, 12. Juni 2020
    #18
  4. woerli Erfahrener User

    VBA: Active Checkbox direkt ansprechen (ohne deren Nummer)

    Hi Karin,

    vielen Dank, habe ich getestet und funktioniert so erstmal prima.
    Angenommen ich habe mehrere aktive Checkboxen auf dem Blatt und mich interessiert nur der Status einer bestimmten, wie kann ich das damit umsetzen?
    Also Beispiel: ich weiß, ich bin grade in Zeile 5 und die Checkbox in dieser Zeile heißt "Checkbox3", wie verwende ich dann die "3" als Perameter?

    Alternativ könnte ich eventuell bei deinem Code die If-Anweisung weglassen und die Schleife X mal durchzählen lassen. X wäre dann "Zeile - 2" und ich hätte die entsprechende Checkbox.

    Zum Verständnis:
    Dein Code ermittelt ja nur aktive Checkboxen. Die Ermittlung nach "aktiv" erfolgt in der Anweisung "Forms.CheckBox.1", oder?
    Die Variante "Forms.CheckBox.0" wären dann die deaktivierten Checkboxen, aber ich habs probiert und so einfach ist es leider nicht.

    Viele Grüße
    Holger
     
    woerli, 13. Juni 2020
    #19
  5. Beverly
    Beverly Erfahrener User
    Hi Holger,

    mein Code läuft über ALLE STEUERELEMENTE im Tabellenblatt und wenn dieses Steuerelement eine CheckBox ist, wird wiederum geprüft ob sie aktiviert ist. Die äußere If-Anweisung prüft, ob das gerade durchlaufene Steuerelement eine CheckBox ist - "Forms.CheckBox.1" ist der VBA-Begriff für den Steuerelemente-Typ CheckBox.
    Die MsgBox für die aktivierte CheckBox ist nur ein Beispiel - in die innere If-Anweisung kann man alles Mögliche packen.

    Wenn du prüfen willst, ob es die CheckBox in Zeile 5 ist, kannst du die Eigenschaft TopLeftCell verwenden

    Code:
        Dim oobElement As OLEObject
        For Each oobElement In ActiveSheet.OLEObjects
            If oobElement.progID = "Forms.CheckBox.1" Then
                If oobElement.TopLeftCell.Row = 5 Then MsgBox "CheckBox ist in Zeile 5"
            End If
        Next oobElement
    
    
    Bis später,
    Karin
     
    Beverly, 13. Juni 2020
    #20
  6. woerli Erfahrener User
    Hi Karin,

    danke auch hierfür!
    Nun kann ich die Checkbox in der jeweiligen Zeile finden und mit

    Code:
    oobElement.Object.Value
    deren Wert abfragen oder setzen. :)

    Viele Grüße
    Holger
     
    woerli, 14. Juni 2020
    #21
Thema:

VBA: Active Checkbox direkt ansprechen (ohne deren Nummer)

Die Seite wird geladen...
  1. VBA: Active Checkbox direkt ansprechen (ohne deren Nummer) - Similar Threads - VBA Active Checkbox

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. VBA Active X steuerelemente Auto-Eingabe wen eine Eingabe erfolgt

    in Microsoft Excel Hilfe
    VBA Active X steuerelemente Auto-Eingabe wen eine Eingabe erfolgt: hallo ich möchte gerne über Drei Aktive X Steuer Elemente das in Spalten "A" Datum ,"B"FSN, und in" C" Benutzer immer eine Auto Eingabe Erfolg wen ich beispielsweise in eine Zeil 4 eine Eingabe...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden