Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ActiveX Elemente in Zelle(n) einbetten

ActiveX Elemente in Zelle(n) einbetten
07.10.2018 18:10:27
SteinApfel
Hey,
wie kann ich ein schon bestehendes ActiveX Steuerelement (Combobox namens CBSystem)in eine oder zwei Zellen einbetten?
Mit folgendem Code kann ich nur ein neues erstellen und einbetten, kann ich damit auch irgendwie auf ein bestehendes zugreifen?
Public Sub AddActiveCCheckboxesByLines()
Dim range As range
Set range = WSEinst.Cells(12, 3)
WSEinst.OLEObjects.Add ClassType:="Forms.combobox.1", _
Link:=False, DisplayAsIcon:=False, Left:=range.Left, Top:=range.Top, _
Width:=range.Width, Height:=range.Height
End Sub
Vielen Dank schon mal :)
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveX Elemente in Zelle(n) einbetten
07.10.2018 18:21:19
Sepp
Hallo ?,
Public Sub AddActiveCCheckboxesByLines()
  Dim objRng As Range

  With WSEinst
    Set objRng = .Cells(12, 3)
    With .CBSystem
      .Left = objRng.Left
      .Top = objRng.Top
      .Width = objRng.Width
      .Height = objRng.Height
    End With
  End With

  Set objRng = Nothing
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

PS: Benenne niemals eine Variable mit einem VBA-Schlüsselwort oder einem bestehendem Objekt-Namen!
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: ActiveX Elemente in Zelle(n) einbetten
07.10.2018 18:34:17
SteinApfel
Oh cool, vielen Dank. :)
range as range habe ich wohl etwas übersehen, vielen Dank auch da! ;)
Funktioniert super.
Eine Frage hätte ich aber noch, könnte ich die Combobox auch über 2 Zellen einbetten? Oder muss ich dann die Breite und Höhe manuell eingeben?
Dazu könnte ich mir ja einmal die Box passend ziehen und dann die Werte in den Code passend übertragen, oder?
Anzeige
AW: ActiveX Elemente in Zelle(n) einbetten
07.10.2018 18:37:14
Sepp
Hallo ?,
dazu kannst du ja den Bereich beliebig angeben.
    Set objRng = .Range(.Cells(12, 3), .Cells(13, 4))

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: ActiveX Elemente in Zelle(n) einbetten
07.10.2018 19:03:11
SteinApfel
Okay, ich wusste nur noch nicht wie es geht. Dass es mit range(cells, cells) geht, ist mir so schnell nicht eingefallen.
Vielen Dank! :)
Wünsche dann noch einen angenehmen Abend.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveX Elemente in Zelle(n) einbetten


Schritt-für-Schritt-Anleitung

Um ein Excel ActiveX Steuerelement in Zelle(n) einbetten zu können, folge diesen Schritten:

  1. Öffne Excel und wechsle in den VBA-Editor, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Public Sub AddActiveCCheckboxesByLines()
       Dim objRng As Range
       With WSEinst
           Set objRng = .Cells(12, 3) ' Zelle anpassen
           With .CBSystem ' Bestehendes Steuerelement
               .Left = objRng.Left
               .Top = objRng.Top
               .Width = objRng.Width
               .Height = objRng.Height
           End With
       End With
    End Sub
  4. Ändere die Cells(12, 3) entsprechend der Zelle, in die Du das Steuerelement einbetten möchtest.

  5. Führe das Makro aus, indem Du F5 drückst oder das Makro über das Menü "Ausführen" auswählst.


Häufige Fehler und Lösungen

  • Fehler: Steuerelement wird nicht angezeigt.

    • Lösung: Stelle sicher, dass die Zelle, in die Du das Steuerelement einbetten möchtest, nicht versteckt oder ausgeblendet ist.
  • Fehler: Steuerelement ist nicht anklickbar.

    • Lösung: Überprüfe die Eigenschaften des Steuerelements im VBA-Editor. Stelle sicher, dass die Enabled-Eigenschaft auf True gesetzt ist.

Alternative Methoden

Eine andere Möglichkeit, ein Excel Kombinationsfeld in Zelle einbetten, besteht darin, den Bereich für das Steuerelement manuell festzulegen. Beispielsweise kannst Du den folgenden Code verwenden, um das Steuerelement über mehrere Zellen hinweg zu ziehen:

Set objRng = .Range(.Cells(12, 3), .Cells(13, 4))

Hierbei wird das Steuerelement über die Zellen C12 bis D13 platziert.


Praktische Beispiele

  1. Einzelnes Steuerelement in einer Zelle:

    Set objRng = .Cells(10, 2) ' Zelle B10
  2. Steuerelement über zwei Zellen:

    Set objRng = .Range(.Cells(10, 2), .Cells(11, 3)) ' Zellen B10 bis C11

Tipps für Profis

  • Versuche, die Excel Steuerelemente an Zellen zu binden, um sicherzustellen, dass sie sich bei der Anpassung der Zellenpositionen entsprechend bewegen.
  • Nutze die LinkedCell-Eigenschaft des Steuerelements, um das Steuerelement mit einer bestimmten Zelle zu verknüpfen. So kannst Du sicherstellen, dass die Auswahl im Steuerelement direkt in die Zelle geschrieben wird.
With .CBSystem
    .LinkedCell = "B12" ' Verknüpft das Steuerelement mit Zelle B12
End With

FAQ: Häufige Fragen

1. Wie kann ich ein bereits bestehendes ActiveX Steuerelement in eine Zelle einbetten?
Du kannst ein bestehendes Steuerelement mit dem oben genannten Code an die gewünschte Zelle binden, indem Du einfach die Left, Top, Width und Height Eigenschaften anpasst.

2. Kann ich ein ActiveX Steuerelement über mehrere Zellen einbetten?
Ja, das ist möglich! Du kannst den Bereich angeben, indem Du die Range-Methode verwendest, wie im Abschnitt "Alternative Methoden" beschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige