Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

ListIndex ohne ComboBox anzuklicken

ListIndex ohne ComboBox anzuklicken
05.04.2013 21:42:52
Jürgen
Hallo Forum,
beim starten der UserForm werden in einer mehrspaltigen ListBox die Daten aus einer Tabelle eingelesen.
Die einzelnen Spaltendaten der ListBox werden in zusätlichen Textboxen und einer vorher gefüllten ComboBox noch einmal separat aufgeführt.
Beim markieren eines Eintrages in der ListBox werden auch die entsprechenden TextBoxen und die ComboBox geädert und zeigen die neu aufgegliederten Daten der ListBox an.
Den Eintrag in der ComboBox ändere ich mittels z.B. "ComboBox1.Text = Cells(X, 22)"
Natürlich könnte ich den Celleintrag aus der Liste der ComboBox heraus jetzt auch ändern und ich hätte, wenn ich das immer machen würde kein Problem, da die ComboBox jetzt einen auswertbaren ListIndex hätte.
Nun mein Problem
In den meisten Fällen brauche ich den ComboBox-Eintrag aber nicht ändern.
Da die ComboBox in diesem Fall nicht angerührt habe, habe ich aber auch keinen auswertbaren ListIndex, den ich für andere Oprationen aber unbedingt brauche.
Mit welchen Trick komme ich jetzt doch noch zu meinem ListIndex?
Gruß
Jürgen

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListIndex ohne ComboBox anzuklicken
05.04.2013 23:47:08
Gerd
Hallo Jürgen,
weshalb brauchts dann den Listindex?
Nimm halt den Combobox1.Value
Gruß Gerd

AW: ListIndex ohne ComboBox anzuklicken
06.04.2013 01:08:26
Jürgen
Hallo Gerd,
Die ComboBox wird vorher mit Festwerten, wie z.B. Ortschaften gefüllt.
Mittels der ComboBox werden diese dann später ggf. in die Tabelle eingetragen oder geändert.
Ändert nun jemand in der Tabelle die entsprechende Zelle von Hand, was er nie tun sollte, kann es zu Schreibfehlern kommen.
Da Value aber eben nur den Text ausliest ist der Erkennungswert gefährdet und eine an anderer Stelle stattfindende Plausibilitätsprüfung fehlerhaft.
Gruß
Jürgen

Anzeige
AW: Blattschutz und UserInterfaceOnly
06.04.2013 08:01:34
hary
Moin Juergen
Zitat: "Ändert nun jemand in der Tabelle die entsprechende Zelle von Hand, was er nie tun sollte"
Dann schuetze doch das Blatt/den Bereich
ActiveSheet.Protect "Dein Passwort", UserInterfaceOnly:=True

Mit UserInterfaceOnly:=True kann nur ein Code die Zellen bearbeiten.
gruss hary

Das hilft mir nicht weiter
06.04.2013 11:40:09
Jürgen
Hallo Hary,
ich weiss, dass man ein Blatt schützen und dennoch per Makro bearbeiten kann.
Es ist aber einfach zu umfangreich, das wenn und aber hier auseinander zu friemeln.
Es gibt komplexe Zusammenhänge, wegen derer ich eben eine Nummer brauche und lasse die Frage daher noch einmal als offen stehen.
Gruß
Jürgen

Anzeige
AW: ..,uns auch nicht!
06.04.2013 12:25:17
Gerd
Hallo Jürgen,
irgendwie ist das wie "Sage mir eine Lösung, aber das Problem ist zu kompliziert, um es zu beschreiben." :-)
Wogegen möchtest du den Quellbereich der Comboboxwerte absichern?
Gruß Gerd

AW: ..,uns auch nicht!
06.04.2013 15:39:19
Jürgen
Hallo Gert,
ich möchte das nicht absichern, denn ich habe in der Anwendung mittels Kommentare und Anleitung zur genüge darauf verwiesen, dass der bestimmte Tab-Bereich nicht geändert werden darf und wie sicher das mit dem Tabellenschutz ist, wissen wir alle. ;)
Ich brauch einen sicheren ComboBox.ListIndex, der zu der Zeit, zu der diese zwar einen Wert anzeigt, aber noch nicht angeklickt wurde, eben noch nicht abrufbar ist.
Weniger elegante und auch lauffähige Ersatzlösungen habe ich aber schon getestet.
Meine Frage bezog sich eher darauf, ob ich da eine Wissenslücke habe und es doch ein Ereignis oder eine Abfragemöglichkeit gibt, die ich aber eben nicht kenne.
Das scheint aber wohl nicht der Fall zu sein, weshalb ich das als erledigt betrachte.
Entschuldige den langen Text, aber wenn sich andere schön Mühe geben, antworte ich auch gern gründlich.
Gruß
Jürgen

Anzeige
Hier noch ein Nachtrag
06.04.2013 01:28:38
Jürgen
Für den Fall, dass es für mein Anliegen keine Lösung geben sollte, habe ich mir eine etwas unelegante Ersatzlösung geschaffen.
Private Sub LI_Vergleich()
For I = 24 To 200
'Hier werden die ComboBox-Einträge mit dem eingestellten Tabellenwert verglichen.
'Stimmt beides überein, wird ein Ersatz-ListIndex (StatusLI) gebildet.
'In Kwsd Spalte 35, Zeile 24 bis 200 Stehen die Festwerte für die ComboBox.
If Kwsd.Cells(I, 35) = Kwsh.Cells(Wzl, 31) Then
StatusLI = I - 24
Cells(3, 35) = StatusLI ' Nur als Testzeile
Exit For
End If
Da mir das aber noch nicht optimal erscheint, betrachte ich die Frage als noch unbearbeitet.
Gruß
Jürgen

Anzeige
AW: Hier noch ein Nachtrag
06.04.2013 12:19:11
Tino
Hallo,
Du könntest auch gleich in der ComboBox oder ListBox suchen.
Beispiel ComboBox
Dim nIndex, SuchWert$
SuchWert = Kwsh.Cells(Wzl, 31)
nIndex = Application.Match(SuchWert, Application.Index(ComboBox1.List, , 1), 0)
If IsNumeric(nIndex) Then
nIndex = nIndex - 1
Else
nIndex = -1
End If
ListBox1.ListIndex = nIndex
Beispiel ListBox
Dim nIndex, SuchWert$
SuchWert = Kwsh.Cells(Wzl, 31)
nIndex = Application.Match(SuchWert, Application.Index(ListBox1.List, , 1), 0)
If IsNumeric(nIndex) Then
nIndex = nIndex - 1
Else
nIndex = -1
End If
ListBox1.ListIndex = nIndex
Gruß Tino

Anzeige
AW: Hier noch ein Nachtrag
06.04.2013 15:44:18
Jürgen
Hallo Tino,
danke für Deine Mühe.
Ich werde das mal durchtesten um zu sehen, für was ich mich nun entscheide oder ob etwas an meinem Grundkonzept nicht stimmt.
Ansonsten betrachte ich das Thema als erledigt.
Gruß
Jürgen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige