Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Wenn Combobox1 Name ausgewählt Name nicht mehr in ComboBox2 erscheinen
#1
Hallo Leute!
Wie bekomme ich das hin wenn in CB1 ein Name ausgewählt wurde das dieser nicht mehr in der CB2 erscheint?
mfg
Michael
:98:

WIN 10  Office 2019
Top
#2
Hallo Uwe!
Danke für die Hilfe!
Nach den ersten test sieht es gut aus!
Sollte es dennoch probleme geben melde ich mich
mfg
Michael
:98:

WIN 10  Office 2019
Top
#3
Hallo Uwe!

Habe jezt doch noch ein Fehler oder Problem festgestellt!
Wenn ich deinen Code benutze kann ich meine ListBox nicht mehr richtig einlesen.
Bei CB1 noch alles i.O.
Wenn Cb2 dazu kommt werden die Beträge in die ListBox1 von CB1 nochmals eingelesen

Code:
Private Sub ComboBox1_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double, dblSumm2 As Double
Dim i As Long
    
  If ComboBox1.ListIndex > -1 Then
        loLetzte = Cells(Rows.Count, 1).End(xlUp).Row

    With ComboBox2
      For i = .ListCount - 1 To 0 Step -1
        If CStr(.List(i)) = ComboBox1.Value Then .RemoveItem i
      Next i
    End With
  End If
    
        If Me.ComboBox1 = ("GÄSTE") Then
  
            ComboBox3.Visible = True
            TextBox5.Visible = True
            ComboBox3.RowSource = "Startblatt!B16:B20"
            ComboBox4.Visible = False
            TextBox6.Visible = False
        Else
            ComboBox3.Visible = False
            TextBox5.Visible = False
            ComboBox4.Visible = False
            TextBox6.Visible = False
        End If

Me.ListBox1.Clear
'die ausgewählte ComboBox wird mit übertragen
Call prcListboxEinlesen(loLetzte, Me.ComboBox1) ' neu eingefügt um ListBox zu aktivieren
End Sub

Das ganze hat was mit den Beitrag BuchenNeu in diesen Forum zu tun.
mfg
Michael
:98:

WIN 10  Office 2019
Top
#4
Hallo Michel,
Wahrscheinlich wird der code mehrfach durchlaufen. Das kann man clever verhindern, indem man z.b. am Anfang vom code die Tag-Eigenschaft prüft. Ist der Tag "" dann setzt man ihn z.b. auf "!!" und wenn die zwei Ausrufezeichen schon da sind, verlässt man das Makro. Am Ende vom VBA-Makro setzt du den Tag wieder auf"".
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Hallo Michael,

da passt nach dem Löschen der Listindex nicht mehr. Was bisher die 1 war, ist danach die 0, die 2 die 1 und so weiter.... Das wirkt sich leider auch auf die Prozedur prcListboxEinlesen aus. Ich hätte jetzt mal folgenden Vorschlag: Der Namen erscheint weiterhin in der ComboBox und wenn er doppelt ausgewählt wird, kommt eine Meldung.
Code:
omboBox2_Change()
Dim loLetzte As Long
Dim dblwert As Double, dblSumm As Double
If Me.ComboBox2.Value = Me.ComboBox1.Value Then MsgBox "Bereits ausgewählt!", vbInformation: ComboBox2.ListIndex = -1
If Me.ComboBox2.ListIndex > -1 Then
    loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
    'die ausgewählte ComboBox wird mit übertragen
    Call prcListboxEinlesen(loLetzte, Me.ComboBox2) ' neu eingefügt um ListBox zu aktivieren
End If
    
'Me.ListBox1.Clear


End Sub

Entferne dazu auch bitte den Vorschlag von Uwe.
Gruß Stefan
Win 10 / Office 2016
Top
#6
Hallo!
Danke euch beiden für die Hilfe!
@ Uwe
habe das versucht von dir umzusetzen, wie es fast immer ist ohne erfolg. Würde mich aber trotzdem intressieren wie das richtig geht. Wenn du nochmal was schreiben könntest? Mit Tag-Eigenschaft noch nichts zu tun gehabt.

@ Stefan
die Lösung finde ich auch nicht schlecht weil gleich eine Meldung kommt!



Wie gesagt Danke für die Hilfe.
Ich würde in meinen Projekt gerne beide Lösung Vorschläge einsetzen.
mfg
Michael
:98:

WIN 10  Office 2019
Top
#7
Hallo Michael,

der Vorschlag mit der Tag-Eigenschaft kam von André. Und beide Vorschläge einsetzen wird wohl nicht nötig sein. Denn wenn Du die Lösung von Uwe favorisiert und auch einsetzen willst, mußt Du meinerachtens in den Comboboxen eine Spalte einfügen, in der die Spalten eingetragen werden in der der Namen steht. Dies bedingt natürlich danach Umbauarbeiten in der Userform_Initialize-Prozedur und im Makro prcListboxEinlesen und eventuell auch noch in weiteren Prozeduren.

Oder Du verwendest doch meine 08/15-Murks-Lösung.
Gruß Stefan
Win 10 / Office 2016
Top
#8
Hallo Stefan!
Das der vorschlag von Uwe kam weiß ich, daß man danach noch soviel anpacken muß war mir nicht klar.
Habe immer gedacht einbauen und es funkt. Ich bin halb immer noch in der Lernphase.
Ich habe auch deinen Code eingebaut und es funkt, aber warum soll man nicht dazu Lernen können?
Und was du schreibst 08/15 Murks, kann ich nicht sagen. ich bin über jede Hilfe Dankbar.

Ich hoffe du hilfst mir immer noch weiter!
mfg
Michael
:98:

WIN 10  Office 2019
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste