Thema Datum  Von Nutzer Rating
Antwort
24.05.2018 09:34:55 Matteo
NotSolved
24.05.2018 09:58:19 Gast84104
NotSolved
28.05.2018 10:39:07 Matteo
NotSolved
24.05.2018 13:12:52 Gast91515
NotSolved
24.05.2018 23:56:50 Gast16775
NotSolved
Blau Demo für Formular- und ActiveX-Steuerlemente
25.05.2018 01:25:54 Gast54512
NotSolved
28.05.2018 11:20:11 Matteo
NotSolved

Ansicht des Beitrags:
Von:
Gast54512
Datum:
25.05.2018 01:25:54
Views:
592
Rating: Antwort:
  Ja
Thema:
Demo für Formular- und ActiveX-Steuerlemente

Dieser Code demonstriert wie man Kombinationsfelder auf einem Tabellenblatt ermittelt.

Dabei gilt es zu beachten, dass es zwei verschiedene Arten gibt: Formular- und ActiveX-Steuerelemente.

(Die Formularsteuerelemente waren zuerst da und sind heute hauptsächlich wegen der Abwärtskopatibilität noch enthalten, diese haben außerdem einige Vorteile gegenüber ihren ActiveX-Vertretern, auf die ich hier jedoch nicht weiter eingehen möchte.)

Option Explicit

Public Sub Demo()
  
  Dim wks As Excel.Worksheet
  Dim colCBO As VBA.Collection
  Dim item As Object
  Dim i As Long
  
  Set colCBO = New VBA.Collection
  Set wks = Worksheets("Tabelle1")
  
  For Each item In wks.Shapes
    If item.Type = MsoShapeType.msoFormControl Then
      If item.FormControlType = XlFormControl.xlDropDown Then
        Call colCBO.Add(item)
      End If
    End If
  Next
  
  'Ausgabe der Namen im Direktbereich (ggf. einblenden über Menü Ansicht im VBA-Editor, oder per STRG+G)
  Debug.Print vbNewLine; "[Formularsteuerlemente:" & colCBO.Count & "]"
  For Each item In colCBO
    Debug.Print Spc(1); "Name: '"; item.Name & "'"
  Next
  
  Call MsgBox("'" & wks.Name & "' hat " & colCBO.Count & " Formularsteuerelemente vom Typ 'Kombinationfeld'.", vbInformation)
  
  Set colCBO = New VBA.Collection
  Set wks = Worksheets("Tabelle1")
  
  For Each item In wks.OLEObjects
    If item.OLEType = XlOLEType.xlOLEControl Then
      If 0 = StrComp(item.progID, "FORMS.COMBOBOX.1", vbTextCompare) Then
        Call colCBO.Add(item)
      End If
    End If
  Next
  
  'Ausgabe der Namen im Direktbereich (ggf. einblenden über Menü Ansicht im VBA-Editor, oder per STRG+G)
  Debug.Print "[ActiveX-Steuerlemente:" & colCBO.Count & "]"
  For Each item In colCBO
    Debug.Print Spc(1); "Name: '"; item.Name & "'"
  Next
  
  Call MsgBox("'" & wks.Name & "' hat " & colCBO.Count & " ActiveX-Steuerelemente vom Typ 'Kombinationfeld'.", vbInformation)
  
End Sub

 


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
24.05.2018 09:34:55 Matteo
NotSolved
24.05.2018 09:58:19 Gast84104
NotSolved
28.05.2018 10:39:07 Matteo
NotSolved
24.05.2018 13:12:52 Gast91515
NotSolved
24.05.2018 23:56:50 Gast16775
NotSolved
Blau Demo für Formular- und ActiveX-Steuerlemente
25.05.2018 01:25:54 Gast54512
NotSolved
28.05.2018 11:20:11 Matteo
NotSolved