Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
200to204
200to204
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dropdown fehler

Dropdown fehler
14.01.2003 16:17:21
Thomas
Hallo zusammen

Mit untenstehendem Code (Klassenmodul) wird verhindert, dass mit den 5 Comboboxen den gleichen Inhalt mehrmals ausgelesen werden kann. Bei Auswahl eines bereits vorhandenen Eintrages wird sofort eine Fehlermeldung ausgegeben.
Der Fehler ist nun, dass durch ComboBox.Change (weil das Dropdownfeld auf leer zurückgestellt wird) das Modul ein 2. Mal durchlaufen wird.

Kann ich dass irgendwie verhindern??

Private Sub combo(id As Integer, Nr As Integer)
On Error Resume Next
Select Case Nr
Case 1
If ComboBox2.ListIndex = id Then
MsgBox "Shit!"
ComboBox1.ListIndex = -1
Exit Sub
End If
If ComboBox3.ListIndex = id Then
MsgBox "Shit!"
ComboBox1.ListIndex = -1
Exit Sub
End If
If ComboBox4.ListIndex = id Then
MsgBox "Shit!"
ComboBox1.ListIndex = -1
Exit Sub
End If
If ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox1.ListIndex = -1
Exit Sub
End If
Case 2
If ComboBox1.ListIndex = id Then
MsgBox "Shit!"
ComboBox2.ListIndex = -1
Exit Sub
End If
If ComboBox3.ListIndex = id Then
MsgBox "Shit!"
ComboBox2.ListIndex = -1
Exit Sub
End If
If ComboBox4.ListIndex = id Then
MsgBox "Shit!"
ComboBox2.ListIndex = -1
Exit Sub
End If
If ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox2.ListIndex = -1
Exit Sub
End If
Case 3
If ComboBox1.ListIndex = id Then
MsgBox "Shit!"
ComboBox3.ListIndex = -1
Exit Sub
End If
If ComboBox2.ListIndex = id Then
MsgBox "Shit!"
ComboBox3.ListIndex = -1
Exit Sub
End If
If ComboBox4.ListIndex = id Then
MsgBox "Shit!"
ComboBox3.ListIndex = -1
Exit Sub
End If
If ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox3.ListIndex = -1
Exit Sub
End If
Case 4
If ComboBox1.ListIndex = id Then
MsgBox "Shit!"
ComboBox4.ListIndex = -1
Exit Sub
End If
If ComboBox2.ListIndex = id Then
MsgBox "Shit!"
ComboBox4.ListIndex = -1
Exit Sub
End If
If ComboBox3.ListIndex = id Then
MsgBox "Shit!"
ComboBox4.ListIndex = -1
Exit Sub
End If
If ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox4.ListIndex = -1
Exit Sub
End If
Case Else
If ComboBox1.ListIndex = id Then
MsgBox "Shit!"
ComboBox5.ListIndex = -1
Exit Sub
End If
If ComboBox2.ListIndex = id Then
MsgBox "Shit!"
ComboBox5.ListIndex = -1
Exit Sub
End If
If ComboBox3.ListIndex = id Then
MsgBox "Shit!"
ComboBox5.ListIndex = -1
Exit Sub
End If
If ComboBox4.ListIndex = id Then
MsgBox "Shit!"
ComboBox5.ListIndex = -1
Exit Sub
End If
End Select
End Sub

Private Sub ComboBox1_Change()
Dim id As Integer, Nr As Integer
id = ComboBox1.ListIndex
Nr = 1
Call combo(id, Nr)

End Sub
Private Sub ComboBox2_Change()
Dim id As Integer, Nr As Integer
id = ComboBox2.ListIndex
Nr = 2
Call combo(id, Nr)
End Sub

usw.. bis ComboBox5

Danke für eure Vorschläge

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Dropdown fehler
14.01.2003 16:31:13
Nepumuk
Hallo Thomas,
dimensioniere dir auf Modulebene ein Boolsche Variable, die du bein start des Programmes combo auf True setzt und am Ende auf False. Frag die Variable im CombobBox_Change-Ereignis ab, wenn True - keine Aktion, wenn False - Aktion.
Gruß
Nepumuk

Re: Dropdown fehler
14.01.2003 16:34:37
Thomas
Hallo Nepumuk

Klingt recht gut und einleuchtend...!!! Muss dir aber gestehen dass ich nicht ein VBA-Profi bin... will heissen, kannst du mir dabei helfen??

Wäre dir recht dankbar

Gruss Thomas

Re: Dropdown fehler
14.01.2003 16:46:09
Nepumuk
Hallo Thomas,
so funktioniert das:

Gruß
Nepumuk
Re: Dropdown fehler
14.01.2003 17:02:25
Thomas
Schneller als die Post....

Habe noch ne Frage:
- Wird das in ein Standardmodul oder ins Klassenmodul eingefügt?

- Bei den pünktchen wird Select Case eingesetzt??

Kann eben das ganze erst heute Abend testen und darum die dummen Fragen, solange du noch Online bist...!!

Aber, tausend Dank

Gruss Thomas

Anzeige
Re: Dropdown fehler
14.01.2003 17:09:39
Nepumuk
Hallo Thomas,
das ganz gehört in das Klassenmodul der Userform, dort wo dein ursprünglicher Code schon stand. Das von mir sind nur Ergänzungen zu deinem vorhandene Code. Die Pünktchen sollen deinen Code darstellen. Die Prüfung, ob die Variable prüfen=True muss natürlich in jedem Combobox_Change-Ereignis stattfinden.
Gruß
Nepumuk
Re: Dropdown fehler
14.01.2003 17:21:56
Thomas

Hallo Nepumuk

Danke für deine Geduld und das Prima erklären. Habe den Code soeben getest.

Dieser klappt hervorragend, aber nur mit Debuggen (F8 Einzelschritt). Nehme ich Änderungen am Dropdown im Sheet vor, tut sich kein Wank.

Muss ich da etwas noch Präzisieren (z.B ActiveSheet.Object.ListIndex oder ThisWorkbook.Sheets.....)???

Gruss
Thomas

Anzeige
was macht die Boolsche Variable
14.01.2003 17:41:16
Thomas
Hallo Nepumuk

Dein Code frunzt prima, aber jetzt nur beim ersten Aufruf. Dann wird die Fehlermeldung nicht mehr ausgegeben, wenn ich das 2. Mal den gleichen Inhalt anklicke.

Klappt gut mit der Boolschen Variablen, damit das Change-Erreignis nicht noch einmal aufgerufen wird. Aber später sollte die prüfung wieder arbeiten..

Was macht die Variable denn??

Re: was macht die Boolsche Variable
14.01.2003 18:05:24
Nepumuk
Hallo Thomas,
das kammt daher, das du mit Exit Sub immer vor dem Programmende aus der Routine springst. Ich habe deinen Code mal ein bisschen vereinfacht, da geht bestimmt noch mehr, aber ich arbeite nie mit Steuerelementen in Tabellen. Probier das mal aus:

Option Explicit
Dim prüfen As Boolean
Private Sub combo(id As Integer, Nr As Integer)
Dim index As Integer
prüfen = True
On Error Resume Next
Select Case Nr
Case 1
If ComboBox2.ListIndex = id Or ComboBox3.ListIndex = id Or ComboBox4.ListIndex = id Or ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox1.ListIndex = -1
End If
Case 2
If ComboBox1.ListIndex = id Or ComboBox3.ListIndex = id Or ComboBox4.ListIndex = id Or ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox2.ListIndex = -1
End If
Case 3
If ComboBox1.ListIndex = id Or ComboBox2.ListIndex = id Or ComboBox4.ListIndex = id Or ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox3.ListIndex = -1
End If
Case 4
If ComboBox1.ListIndex = id Or ComboBox2.ListIndex = id Or ComboBox3.ListIndex = id Or ComboBox5.ListIndex = id Then
MsgBox "Shit!"
ComboBox4.ListIndex = -1
End If
Case 5
If ComboBox1.ListIndex = id Or ComboBox2.ListIndex = id Or ComboBox3.ListIndex = id Or ComboBox4.ListIndex = id Then
MsgBox "Shit!"
ComboBox5.ListIndex = -1
End If
End Select
prüfen = False
End Sub
Private Sub ComboBox1_Change()
If Not prüfen Then Call combo(ComboBox1.ListIndex, 1)
End Sub
Private Sub ComboBox2_Change()
If Not prüfen Then Call combo(ComboBox2.ListIndex, 2)
End Sub
Private Sub ComboBox3_Change()
If Not prüfen Then Call combo(ComboBox3.ListIndex, 3)
End Sub
Private Sub ComboBox4_Change()
If Not prüfen Then Call combo(ComboBox4.ListIndex, 4)
End Sub
Private Sub ComboBox5_Change()
If Not prüfen Then Call combo(ComboBox5.ListIndex, 5)
End Sub

Gruß
Nepumuk

Anzeige
Re: was macht die Boolsche Variable
14.01.2003 18:09:07
Nepumuk
Hallo Thomas,
habe gerade gesehen, dass da noch ein Dim-Befehl in der Routine combo steht. Der ist von einem Versuch übriggeblieben. Die Zeile kannst du löschen das die Variable index nicht verwendet wird.
Gruß
Nepumuk
Re: was macht die Boolsche Variable
14.01.2003 18:13:37
Thomas

Hallo Nepumuk....

jeeeeeehh... Einsame Spizte...!!!!!!!!

Nur so aus Neugier, programmierst du das alles aus dem Kopf heraus und dann funktioniert das auch noch... Wauw....Bewunderung...Staun...

Besten Dank an dich :-)

Gruss Thomas

Re: was macht die Boolsche Variable
14.01.2003 18:20:08
Nepumuk
Hallo Thomas,
wenn man das seit über 25 Jahren macht geht's schon etwas leichter.
Schönen Abend,
Nepumuk
Anzeige
Re: was macht die Boolsche Variable
14.01.2003 18:24:03
Thomas

....wünsch ich dir auch

Tschüüss Nepumuk


Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige