Anzeige
Archiv - Navigation
1456to1460
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
Vergleich Von Combox mit String aus Liste
19.11.2015 08:13:47
Chatzebuseli
Hallo VBA -Fans
Ich fange gerade an in VBA laufen zu lehrnen.
zu meinem Problemchen:
In Tabelle eins habe ich Einträge zu Schiffe die ich nach der Suche in eine Listbox lade. ( Die wichtigen Angaben der einzelen Zellen zu einem zusammenhängenden String gepackt.)
Die Zellen werden in Textboxen eingelesen(jede Zelle einzeln).
Ein Wert ist in eine Combobox geladen.
Die Werte der Combox dürfen vom Benutzer allerdings nicht geändert werden. Also möchte ich das der Aktuelle wert in der Combobox mit dem zuvor aufgespaltenen Teilstring des Eintrages in der Listbox verglichen wird. Wert1 = Wert 2 soll in der Prozedur weiter gemacht werden. Wert1 Wert2 Sol eine MsgBox meckern und die Sub abbrechen.
Grundsätzlich kriege ich es hin, und er macht auch alles soweit. Nur die MsgBox meckert IMMER! Auch wenn der Wert nicht geändert wurde.
Der Code der Sub:
Private Sub CommandButton6_Click() 'Änderungen speichern(Vorhandene Einträge)
Dim lZeile, p1, p2, p3, Config, Ans As Integer
Dim Strg, Var1, Var2, VarFIX, MSG, Titel As String
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'===============================================================================
'Überprüft ob die wichtigsten Angaben vorhanden sind!
'Unzulässige Änderungen abfangen
'===============================================================================
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Wir müssen prüfen, ob EU-Nummer vorhanden!
If Trim(CStr(TextBox1.Text)) = "" Then
'Meldung ausgeben
MsgBox "Sie müssen eine EU-Nummer eingeben!", vbCritical + vbOKOnly, "Indentifikation Ungenügend!"
'Abbrechen der Speicherroutine
Exit Sub
End If
' Abfangen das nur Zahlen eingegeben werden Können!!!NOCH PROGRAMIEREN!
If Trim(CStr(TextBox2.Text)) = "" Then
MsgBox "Sie müssen einen Schiffsnamen eingeben!", vbCritical + vbOKOnly, "Indentifikation Ungenügend!"
Exit Sub
End If
'Noch Leere Combobox1 Abfangen!!!!!!!!!!!!!!!!!!!!!!!
'String Zerschneiden
'_______________________
Strg = ListBox1.Value
p1 = Application.Find(",", Strg, 1)
p2 = Application.Find(",", Strg, p1 + 1)
p3 = Application.Find(",", Strg, p2 + 1)
Var1 = Left(Strg, p1 - 1)
Var2 = Mid(Strg, p2 + 1, p3 - 1 - p2)
'__________________________________
MsgBox (Var1)
If Var1 TextBox1.Text Then
MSG = "Sie wollen die EU-Nummer ändern!"
MSG = MSG & vbNewLine & vbNewLine
MSG = MSG & "Bitte klären Sie die Indentität von diesem Schiff ab!"
MSG = MSG & vbNewLine & vbNewLine
MSG = MSG & "Hinweis:" & vbNewLine
MSG = MSG & "Falls es sich doch um das selbe Schiff handeln würde, bitten wir Sie," & vbNewLine & "dieses Schiff als NEUES Schiff zu erfassen," & vbNweLine
MSG = MSG & "und diesen Eintrag in der Kartei zu löschen!"
Titel = "Unzulässige Änderung"
Config = vbOKOnly & vbCritical
Ans = MsgBox(MSG, Config, Titel)
TextBox1.Text = Var1
Exit Sub
End If
If Var2 ComboBox1.Value Then
MSG = "Sie ändern den Schiffstyp!" & vbNewLine
MSG = MSG & "Es ist unwahrscheinlich, dass es sich um dieses Schiff handelt!"
MSG = MSG & vbNewLine & vbNewLine
MSG = MSG & "Prüfen Sie die EU-Nummer von diesem Schiff!"
Config = vbOKOnly & vbCritical
Titel = "Unzulässige Änderung"
Ans = MsgBox(MSG, Config, Titel)
ComboBox1.Value = Var2
Exit Sub
End If

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich Von Combox mit String aus Liste
19.11.2015 14:18:14
Rudi
Hallo,
setze die MatchRequired-Eigenschaft der Cbx auf True. Dann muss der Eintrag mit der Liste übereinstimmen.
'String Zerschneiden
'_______________________
Strg = ListBox1.Value
p1 = Application.Find(",", Strg, 1)
p2 = Application.Find(",", Strg, p1 + 1)
p3 = Application.Find(",", Strg, p2 + 1)
Var1 = Left(Strg, p1 - 1)
Var2 = Mid(Strg, p2 + 1, p3 - 1 - p2)
Das geht mit der Split-Funktion einfacher.
Var1 = Split(ListBox1.Value,",")(0)
Var2 = Split(ListBox1.Value,",")(1)
Gruß
Rudi

Anzeige
AW: Vergleich Von Combox mit String aus Liste
20.11.2015 19:48:54
Chatzebuseli
Danke Rudi
Es klappt Wunderbar
E liebs Griessli

AW: Vergleich Von Combox mit String aus Liste
20.11.2015 19:50:24
Chatzebuseli
Und wie man hier Antwortet habe ich auch raus gefunden.
;-)

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige