Office: Combobox generieren und Change Event bearbeiten

Helfe beim Thema Combobox generieren und Change Event bearbeiten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi Ihr Lieben, ich hänge mal wieder an einem Problem, bei dem ich mit 2 Stunden Webrecherchen keinen Schritt nach vorn gekommen bin. *frown.gif* Ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Chandiris, 11. August 2013.

  1. Combobox generieren und Change Event bearbeiten


    Hi Ihr Lieben,

    ich hänge mal wieder an einem Problem, bei dem ich mit 2 Stunden Webrecherchen keinen Schritt nach vorn gekommen bin. *frown.gif*

    Ich habe ein Userform, über das die Benutzerdatenbank einer Excelanwendung bearbeitet werden kann. Dabei sollte ein Steuerelement flexibel angelegt werden. Wenn ein Benutzer neu angelegt werden soll, dann sollte der Benutzername eine Textbox sein und wenn ein Datensatz bearbeitet werden soll, dann soll es eine Combobox mit einer Auswahlliste sein, bei der das Change Event ein Update der weiteren Steuerelemente auslöst.

    Folgender Code wird on Initialize ausgeführt:

    PHP:
             Private Sub UserForm_Initialize()

    Dim cbo As MSForms.ComboBox
    Dim tbo 
    As MSForms.TextBox

    If Benutzerverwaltung_Typ "bearbeiten" Then

    Set cbo 
    Me.Controls.Add("Forms.Combobox.1""CB_Benutzernamen")
    With cbo
    .Height 18
    .Width 100
    .Top 37
    .Left 100
    .MatchEntry fmMatchEntryNone
    End With
    cbo
    .RowSource "Benutzerliste"
    Me.CB_Rollen.RowSource "Rollenliste"

    ElseIf Benutzerverwaltung_Typ "neu" Then

    Set tbo 
    Me.Controls.Add("Forms.Textbox.1""TB_Benutzernamen")
    With tbo
    .Height 18
    .Width 100
    .Top 37
    .Left 100
    End With
    Me
    .CB_Rollen.RowSource "Rollenliste"

    Else

    MsgBox "Die Übergabevariable 'Benutzerverwaltung_Typ' ist nicht übergeben worden!"vbCritical

    End 
    If

    End Sub
    :)
     
    Chandiris, 11. August 2013
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    während der Laufzeit erzeugte Steuerelemente müssen über Klassen abgefangen werden. Die Klassen habe ich in Deinem Code wohl übersehen.
    Ich bin da nicht der Fachmann, dieser Sachverhalt ist mir aber bekannt.
     
    Hajo_Zi, 13. August 2013
    #2
  3. Danke für die Antwort Hajo.

    Dann übersteigt das meine Kenntnisse. Hat jemand eine Idee oder einen Denkanstoss, wie ich das in diesem Fall lösen müsste?

    Grüße
    Chandiris
     
    Chandiris, 13. August 2013
    #3
  4. Combobox generieren und Change Event bearbeiten

    So funktioniert es einwandfrei! *wink.gif*

    Danke für deinen Denkanstoss Hajo...

    Code:
     
    Chandiris, 13. August 2013
    #4
  5. Guten Morgen Ihr Lieben,

    es ist leider doch noch eine Frage offen geblieben. Mein Ansatz generiert für ein Object eine eigene Klasse, wenn ich das richtig verstanden habe. Ich kann innerhalb der Klasse zwar mehrere Objekte anlegen, beim Eventhandler aber nicht separiert behandeln...

    Hat jemand einen Vorschlag, wie ich den oben gegebenen Code anpassen muss, um mehrere Steuerelemente der gleichen Klasse zuzuordnen, sie dabei aber separiert beim Eventhandler behandeln kann?

    Danke!

    Liebe Grüße
    Chandiris
     
    Chandiris, 13. August 2013
    #5
  6. Hi Chandiris,

    Du benötigst noch ein Array zur Aufnahme der Objekte Deiner Klasse. In der Klasse muss der Eventhandler natürlich erstellt werden.
    Wie das geht, das kannst Du Dir hier exemplarisch ansehen.
    Noch eine Überlegung: Wozu jedesmal eine neue Combobox? Warum nicht die vorhandene entsprechend bearbeiten?
     
  7. Hi Ralf,

    danke für Dein Feedback.

    Es ist in einem Falle eine Combobox und im anderen Falle eine Textbox. Der Punkt ist das man eine Auswahl Benutzer angeboten bekommt, wenn man Benutzerdaten ändern möchte und ein freies Feld angeboten bekommt, wenn man einen neuen Benutzer generieren möchte. Diese Funktion steht nur den obersten Rollen "Admin" und "Leitung" zur verfügung. Da alle weiteren Felder im Formular identisch sind, dachte ich es bietet sich an für beide Fälle das gleiche Formular zu benutzen und nur das eine Steuerelement dynamisch zu generieren und beim aufrufen des Formulars eine variable zu generieren, die mir sagt, ob das Formular über "Benutzer ändern" oder über "Benutzer anlegen" aufgerufen wurde.

    Ist das sub optimal gedacht?

    Was die Beispieldatei angeht... So völlig ohne Kommentare ist die für mich leider sehr schwer inhaltlich zu erfassen. Mir ist überhaupt nicht klar, was du da machst und warum... *wink.gif*
    Klassen definieren ist für mich gerade der nächste Schritt, um mein VBA-Wissen zu erweitern. Ich stehe dort aber noch ganz am Anfang... Mein geposteter Quelltext steht komplett im Userform, muss ich da so ein Klassenmodul im Editor anlegen?

    Liebe Grüße
    Chandiris
     
    Chandiris, 14. August 2013
    #7
  8. Combobox generieren und Change Event bearbeiten

    ...im Nebel zu stochern führt selten zum gewünschten Erfolg. Ich fasse mal zusammen, wie ich das verstanden habe:
    1. Du willst in einem Formular Benutzerdaten entweder a) bearbeiten oder b) neu anlegen.
    Bei Neuanlage soll der Name in eine TextBox geschrieben werden
    Bei Bearbeitung soll Auswahl über eine Combobox möglich sein.

    Und jetzt beginnen meine Vermutungen...
    Ich gehe davon aus, dass Du auf irgendeine Art und Weise (Checkbox, Optionsbuttons oder normale Buttons) festlegst, ob Neuanlage oder Bearbeitung.
    Falls das so ist, warum veränderst Du die Visible Eigenschaft der Text- bzw. Combobox nicht entsprechend?
    Bei Neuanlage wird der Name in die Textbox geschrieben und nach Bestätigung wird sie mit Textboxname.Visible = false gesetzt, der Name zur Combobox hinzugefügt und deren Visibleeigenschaft auf true gesetzt und als Texteigenschaft gleich den neuen Nutzernamen festlegen. Von da aus kannst Du ja den neuen Nutzer dann wie gewohnt bearbeiten.
    Weshalb Du jedesmal neue Text- und Comboboxen brauchst ist mir offen gestanden schleierhaft.
    Zu Deiner letzten Frage, wenn Du die IntelliSense für die Klasse nutzen willst, dann muss diese Klasse zwingend in einem neuen Klassenmodul erstellt werden. Aber wie gesagt, ich sehe keinen Anlass, das auch tun zu müssen...
    ....im Anhang findest Du mal ein Beispiel, wie Du es auch ohne Klassen umsetzen könntest...
     
  9. Hi Ralf,

    danke für dein sehr anschauliches Beispiel und ich denke Du hast an dieser Stelle recht. Deine Lösung ist einfach effizienter/simpler... *wink.gif*

    Liebe Grüße
    Chandiris
     
    Chandiris, 21. August 2013
    #9
Thema:

Combobox generieren und Change Event bearbeiten

Die Seite wird geladen...
  1. Combobox generieren und Change Event bearbeiten - Similar Threads - Combobox generieren Change

  2. Combobox soll zur nächsten Txtbox wechseln zum befüllen

    in Microsoft Excel Hilfe
    Combobox soll zur nächsten Txtbox wechseln zum befüllen: Hallo Allesamt Nach einem Event soll gesichtet werden, ob alles in Ordnung ist. Ist der ein oder andere Artikel beschädigt, kann in der UF gewählt werden. 1. Eventnummer suchen per Combobox oben...
  3. Combobox einbinden

    in Microsoft Excel Hilfe
    Combobox einbinden: Hallo, ich bastele an einer Funktion, bei der ich an einer Stelle im Programm eine Combobox aufrufen möchte, die dann mit bestimmten Werten aus einer Tabelle gefüllt ist und dann den gewählten...
  4. Dynamische Combobox mit zwei Bedingungen

    in Microsoft Excel Hilfe
    Dynamische Combobox mit zwei Bedingungen: Hallo ich bräuchte einen vba Code welcher eine dynamische Combobox befüllt. Zudem soll die Combobox alle schon eingetragenen Daten in einer Spalte beim Dropdown ausschiessen damit keine Doppelten...
  5. Auswahl über Combobox dann Werte kopieren

    in Microsoft Excel Hilfe
    Auswahl über Combobox dann Werte kopieren: Hallo in die Runde, Für euch VBA Profis ist die Lösung dieser Problematik nur ein Klacks, mir als Anfänger bringt es nur graue Haare. In der Tabelle Lager stehen in der Spalte A alle vorhandenen...
  6. Textbox aus Combobox nach Änderung befüllen

    in Microsoft Excel Hilfe
    Textbox aus Combobox nach Änderung befüllen: Hallo zusammen Ich habe ein Problem mit dem automatischen befüllen der Textbox. Sobald ich das von mir Fett markierte aktiviere, bekomme ich den Fehler "Die XLookup Eigenschaft des...
  7. Combobox immer wenigere Daten anzeigen

    in Microsoft Excel Hilfe
    Combobox immer wenigere Daten anzeigen: Hallo zusammen, ich bin's mal wieder. Folgende Problematik: ich befülle eine Combobox mit gefilterten Daten. (ZählerNr vom Vorjahr) z.B ZählerNr 1-10 Zählerstände zum 31.12.21 Wenn ich nun die...
  8. wert aus ComboBox prüfen dann hinzufügen

    in Microsoft Excel Hilfe
    wert aus ComboBox prüfen dann hinzufügen: Gutn Morgen zusammen, mit folgendem Code fülle ich meine ComboBox Private Sub UserForm_initialize() With ComboBox1 For Repeatings = 2 To...
  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