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. Kamera in Excel einbinden und per vba Fotos erstellen

    in Microsoft Excel Hilfe
    Kamera in Excel einbinden und per vba Fotos erstellen: Kamera in Excel einbinden Hallo, ich suche einen Code für eine UserForm, mit der ich die integrierte Kamera des WinPC in der UserForm anzeigen lassen kann und davon ein Bild sichern kann.
  3. Liste aller Comboboxen im Sheet

    in Microsoft Excel Hilfe
    Liste aller Comboboxen im Sheet: Hallo allerseits, Ich möchte alle Comboboxen eines Worksheets mit VBA auslesen und finde nicht den Namen der Liste in den Sheet-Eigenschaften, in der die Comboboxen gespeichert sind. Wer weiß, wo...
  4. Pivot Tabelle: Quelle per VBA verändern

    in Microsoft Excel Hilfe
    Pivot Tabelle: Quelle per VBA verändern: Hi all, gibt es eine Möglichkeit, wie ich die Quelle einer Pivot Tabelle mit einem Klick aktualisieren kann? 1) Beispiel Quelle: [Datum_Dateiname.xlsx]Tabelle1!$A:$AA 2) Beispiel wie es je nach...
  5. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  6. 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"),...
  7. 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....
  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