Office: (Office 2010) ComboBox Anzeige wieder auf Listenüberschrift setzten

Helfe beim Thema ComboBox Anzeige wieder auf Listenüberschrift setzten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Hilfeteam, Hab ein Problem mit der Combobox, wenn der Eintrag ausgewählt wurde bleibt dieser in der ComboBox stehen und der nächsten User kann... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Richi, 24. August 2015.

  1. Richi Erfahrener User

    ComboBox Anzeige wieder auf Listenüberschrift setzten


    Hallo Hilfeteam,

    Hab ein Problem mit der Combobox, wenn der Eintrag ausgewählt wurde bleibt dieser in der ComboBox stehen und der nächsten User kann den selben Eintrag (Land) nicht wieder aktivieren, somit soll die Combobox (enthält eine Liste mit Ländern und deren Ländercodes) sich wieder zur Überschrift zurück stellen.

    Habe 2 Comboboxen in meiner Tabelle (Reiseanträge mit Zwischenziel = Spalte K[11] und Endziel = Spalte P[16])
    Ländercode1_2014 wird nicht immer befüllt, da es nur für Zwischenziele gedacht ist nur Endziel ist ein Mussfeld und somit bezieht sich auch die Fomel aus Ländercode1 auf Ländercode2.

    In Combobox2 (Ländercode2_2014) geht die Formel Comobox.ListIndex = 0, aber bei der ComboBox1 wird der Eintrag in der Tabelle (Reiseort-Land) nur kurz angezeigt und ist dann wieder gelöscht.
    Gibt es noch eine andere Formel um die ComboBox wieder auf den Listenanfang zusetzen, oder kann mir bei dem Fehler jemand helfen.

    Hier meine Formel:

    Option Explicit

    Private Sub Ländercode1_2014_Change()
    Dim lngErste As Long
    lngErste = IIf(IsEmpty(Cells(Rows.Count, 16)), Cells(Rows.Count, 16).End(xlUp).Row, Rows.Count) + 1
    If lngErste < 6 Then lngErste = 6
    Cells(lngErste, 11) = Ländercode1_2014

    End Sub


    Private Sub Ländercode2_2014_Change()
    Dim lngErste As Long
    lngErste = IIf(IsEmpty(Cells(Rows.Count, 16)), Cells(Rows.Count, 16).End(xlUp).Row, Rows.Count) + 1
    If lngErste < 6 Then lngErste = 6
    Cells(lngErste, 16) = Ländercode2_2014
    Ländercode2_2014.ListIndex = 0

    End Sub

    Benötige dringen Hilfe somit ComboBox Anzeige wieder auf Listenüberschrift setzten :confused:

    Besten Dank im voraus Richard
     
  2. Richi Erfahrener User
    Hallo Leute,

    leider hat auch der Eintrag in ComboBox2 Listindex = 0 einen Laufzeitfehler.

    Bitte um Hilfe!

    Danke
     
  3. Exl121150 Erfahrener User
    Hallo Richard,

    wenn du tatsächlich möchtest, dass dir jemand hilft, musst du etwas mehr hochladen als nur bloß die 2 Ereignisbehandlungsroutinen des Change-Ereignisses für die 2 Steuerelemente "Landercode1_2014" und "Landercode2_2014".

    Wenn ich nämlich mit Worten beschreibe, was du als VBA-Code für Steuerelement "Ländercode1_2014" angeführt hast, so sieht das so aus:

    1) Du hast in einem Arbeitsblatt ein Steuerelement namens "Ländercode1_2014". Sobald sich der dort enthaltene Wert ändert, wird die von dir angeführte Routine "Ländercode1_2014_Change()" aufgerufen und ausgeführt.

    2a) Dort wird zuerst mit IsEmpty(Cells(Rows.Count, 16)) überprüft, ob die Zelle P1048576 des Arbeitsblattes, in dem sich das Steuerelement befindet, leer ist.
    2b) Ist sie leer, wird mit Cells(Rows.Count, 16).End(xlUp).Row, von dieser Zelle ausgehend, in der Spalte P in diesem Arbeitsblatt nach oben gesucht, bis dort die 1. Zeile (von unten her gerechnet) entdeckt wird, in der Daten stehen - diese Zeilennummer wird dann intern zwischengespeichert.
    2c) Ist die Zelle P1048576 nicht leer, wird mit Rows.Count die Anzahl der Zeilen in diesem Arbeitsblatt intern zwischengespeichert.
    2d) Dieser zwischengespeicherte Wert aus Punkt 2b) bzw. 2c) wird mittels " + 1" um 1 erhöht und sodann in der Variablen "lngErste" gespeichert. Offenbar soll diese Variable die Nummer der 1. freien Zeile in der Spalte P (von oben her), folgend auf einen Block mit Daten, enthalten.

    3) In der nächsten Codezeile wird mittels "If lngErste < 6 Then lngErste = 6" überprüft, ob der Wert in "lngErste" kleiner als 6 ist: Ist dies der Fall, wird der Wert von "lngErste" auf 6 gesetzt. - Also muss die Zeilennummer mindestens 6 sein.

    4) In der nächsten Codezeile wird mit "Cells(lngErste, 11) = Ländercode1_2014" in die Zelle mit der Spalte K und der Zeilennummer "lngErste" der Wert gepeichert, der sich in "Ländercode1_2014" befindet.
    4a) Aber genau da kommt es, wenn der Punkt 2c) zutrifft, zu einem unbehandelten Laufzeitfehler im Makro: In diesem Fall wird in Variable "lngErste" die Zahl 1048577 gespeichert (das ist eine Zeilennummer, die es im Arbeitsblatt gar nicht gibt, denn die größte=letzte Zeilennummer ist ja 1048576 !).
    4b) Ein weiterer (Compile/Run)-Time-Fehler kann hier auftreten, falls die Variable "Ländercode1_2014" zu diesem Zeitpunkt nicht existiert. Da sie nicht lokal (=in der Prozedur) deklariert und festgelegt ist, müsste sie entweder auf Modulebene oder auf Projektebene deklariert (und in diesem Scope-Bereich auch festgelegt) sein.

    Das ist alles, was es an VBA-Code zu sehen gibt. Und ähnlich sieht beim Code für das 2. Steuerelement aus. Was soll ich dazu schon sagen, außer dass man den eventuell auftretenden Fehler aus Punkt 4a) abfangen kann, sodass eine ordentliche Fehlermeldung den Fall behandelt, bei dem das Arbeitsblatt voll mit Daten ist.
     
    Zuletzt bearbeitet: 24. August 2015
    Exl121150, 24. August 2015
    #3
  4. Richi Erfahrener User

    ComboBox Anzeige wieder auf Listenüberschrift setzten

    Hallo Anton Exl,

    Sorry aber ich hab nicht gewusst was die VBA so ganz genau macht hab das abgeschrieben und die Grundregeln hab ich verstanden, aber was kann ich für dich noch weitergeben um dir (mir) zu helfen?

    In einer Liste werden die Reisdaten für ein Reiseziel pro Person in einer Zeile erfasst, damit nicht von der Zeile 6 bis 500 in jeder Zeile in Spalte K und P der Ländercode ( = Formel Diätensatz für die Reise) angelegt werden muss hab ich hier eine ComboBox in der Zeile 4 Überschrift) . Eine Zeile pro Reise pro Person, K ist nur ein Zwischenziel und wird z.B. eben für Diäten bei Flügen über Auslandsflughäfen verwendet, kein Eintrag in der Tabelle notwendig und dann geht es ins Bestimmungsland Spalte P hier muss ein Wert in der Tabelle eingetragen werden.
    Die Spalte K Zeile 10 wird dann befüllt wenn in Spalte P z.B. Zeille 10 kein Ländercode steht., für die nächste Reise Zeile 11, ComboBox (in Zeile 4) K+P Eintrag in Zeile 11 bis z.b. Zeile 500 (hängt von den jährlichen Reisen in der Firma ab), leeres Feld P Zeile 11 dann den LänderCode in Zeile 11 eintragen. Die Tabelle beginnt in Zeile 6.
    Nun hab ich aber das Problem, wenn "Österreich" im Ländercode von einem User gewählt wurde bleibt "Österreich" in der ComboBox stehen, der nächste User in der nächsten Zeile kann "Österreich" nicht mehr auswählen, die ComboBox soll somit auf die Überschrift ( in der Listen Codes hinterlegt = "Ländercode") anzeigen, damit alle Eintragungen aus der Liste "Codes" ausgewählt werden können.

    Hoffe es ist verständlich, bitte sonst noch die Beschreibungen der fehlenden Daten, dann kann ich die auch sicher liefern.

    Anbei eine Excel-Datei mit ein paar Werten und dem Aufbau.

    Meine Frage ist: Wie kann ich excel 2010 einer Combobox nach Auswahl der Combobox oder öffnen der Mappe wieder den ersten Listeneintrag zuweisen!?

    Dank
    richard
     
    Zuletzt bearbeitet: 25. August 2015
  5. Exl121150 Erfahrener User
    Hallo Richard,

    ich habe in der beiliegenden Excel-Datei ein paar Änderungen vorgenommen:

    1) Im Arbeitsblatt "Dienstreiseantragsliste" habe ich den 3 Zellen der Spalten M und R die Ort-Formel etwas vereinfacht.

    2) In den beiden Comboboxen in Zelle K4 und P4 habe ich
    2a) 2-spaltige Listen eingebaut
    2b) das Problem beseitigt, sodass die mehrmalige aufeinanderfolgende Auswahl desselben Landes jetzt funktioniert
    2c) ferner habe ich das Problem mit dem Combobox-Listindex=0-Laufzeitfehler bereinigt: Durch das Nullsetzen der Listindex-Eigenschaft der Combobox wird nämlich noch einmal ein Change-Event bei der Combobox ausgelöst - diesen habe ich jedoch abgefangen durch ein zusätzliches Exit-Sub am Anfang der Click-Behandlungsprozedur.
    2d) Hinweisen möchte ich noch, dass (nur) die Combobox in K4 verlinkt ist mit der Zelle K6 (der ausgewählte/gespeicherte Wert aus ISO-Code-Spalte wird somit auch in Zelle K6 angezeigt), während dies zwischen der Combobox in P4 und der Zelle P6 nicht der Fall ist. - Das habe ich bereits so vorgefunden.

    3) Für die Spalte C war ebenfalls eine Change-Event-Behandlung enthalten, in der die Application.EnableEvent-Eigenschaft zwar ausgeschaltet wurde am Anfang, am Ende aber nicht wieder eingeschaltet wurde. Schaltet man diese Eigenschaft aus (=False), muss man unbedingt dafür sorgen, dass sie wieder zuverlässig eingeschaltet wird.

    4) Im Codemodul "Modul1" habe ich eine kleine Funktion hinzugefügt (GetText), mit der man bequem in Zeichenketten enthaltene Parameter durch die eigentlichen Texte ersetzen kann. Ich habe diese Funktion für die Fehlermeldung aus Punkt 3) eingesetzt.

    5a) In den Arbeitsblättern "Österreich".."Deutschland" habe ich die dort enthaltenen PLZ-Auflistungen durch "Tabellen" neuen Stils ersetzt und sie haben jetzt Namen: "TabÖsterreich"..."TabDeutschland" - vgl. dazu auch die Formeln aus Punkt 1)
    5b) Das gleiche gilt auch für die Länder/ISO-Code Auflistung im Arbeitsblatt "Code": Diese Tabelle heißt "TabLänderISO".
     
    Exl121150, 25. August 2015
    #5
  6. Richi Erfahrener User
    Hallo Anton,

    Super DANKE, DANKE, hatte nur einen Laufzeitfehler 380 durch den Listindex=0, den hab ich noch auf die Formel

    If ComboBox1.ListCount Then ComboBox1.ListIndex = 0
    Listindex nur dann, wenn die Combobox auch Einträge beinhaltet.


    Sonst läuft es rund.

    Vielen Dank nochmal für die grosse und Umfangreiche Hilfe!!!

    Richard
     
Thema:

ComboBox Anzeige wieder auf Listenüberschrift setzten

Die Seite wird geladen...
  1. ComboBox Anzeige wieder auf Listenüberschrift setzten - Similar Threads - ComboBox Anzeige Listenüberschrift

  2. 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...
  3. 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...
  4. 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...
  5. Monat über Combobox auswählen Kalenderdaten im Userform anzeigen

    in Microsoft Excel Hilfe
    Monat über Combobox auswählen Kalenderdaten im Userform anzeigen: hallo, ich habe folgendes Problem. Ich habe eine Tabelle in der ein Kalender generiert wird. Eine Userform (frmTerminkalender. In der Userform werden Monate angezeigt. ich möchte, dass wenn ich...
  6. Wert in Combobox anzeigen

    in Microsoft Excel Hilfe
    Wert in Combobox anzeigen: Moin moin zusammen, Brauch mal wieder Hilfe von euch und hoffe auf diese Also Habe eine Userform mit Combobox mit Namen von Kollegen, die ich über eine Schaltfläche aufrufe Nun habe ich in einer...
  7. Combobox Kombinationsfeld Automatisch ersten Wert anzeigen, wie?

    in Microsoft Access Hilfe
    Combobox Kombinationsfeld Automatisch ersten Wert anzeigen, wie?: Moin Moin, hab' da nochmal 'ne Frage zu einem kleinen Problem und vermute, das die Lösung ganz simpel ist, ich komme aber nicht drauf. Wenn ich den Fokus auf ein Kombinationsfeld setze, ist das...
  8. vba comboboxen auswählen

    in Microsoft Excel Hilfe
    vba comboboxen auswählen: Hallo an alle. Ich versuche schon länger erstellte comboboxen auszuwählen und je nach bedarf anzuzeigen. Auf grund der hohen Anzahl an Boxen wurde der die TAbelle rasch voll...
Schlagworte:
  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