Anzeige
Archiv - Navigation
1208to1212
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

VB-Listbox in Tabelle, markierte Zeile bestimmen

VB-Listbox in Tabelle, markierte Zeile bestimmen
abu
Hallo Zusammen,
ich hab in einer Tabelle eine VB Listbox und die treibt mich in den Wahnsinn.
Ich lasse diese Listbox leeren und wieder befuellen und anschliessend zeigt er mir die Zeile an die ich vorher ausgewaehlt hab (blau hinterlegt). Wenn ich aber soviele Eintraege habe das man in der Listbox scrollen muss zeigt er mir den falschen Eintrag an und zwar den letzten sichtbaren Eintrag (ohne scrollen, liegt wohl am TopIndex?).
Jetzt moechte ich gerne selber festlegen welcher Eintrag blau hinterlegt ist, waere natuerlich schoen wenn das ginge ohne das Click-Event auszuloesen. Verrenn ich mich hier oder bin ich zu dumm?
Wuerde mich ueber hilfe freuen.
Gruss
abu

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

Betreff
Benutzer
Anzeige
dein Code? owT
20.04.2011 13:11:55
Rudi
LBOverview_Click
20.04.2011 13:19:40
abu
Hallo Rudi,
hier der Code vom Click Event.
'Bei Click Formular ausfuellen
Private Sub LBOverview_Click()
Dim check As String
Dim oOle As OLEObject
'var fuer zeilennummer
k = LBOverview.ListIndex + 2
'check datei available
Call CheckData.Data_offen
If bolError = True Then
bolError = False
MsgBox "No updates available and no record has not been saved, the data file is in use!" _
& vbLf & strDatname & vbLf & _
"Please try again later."
Exit Sub
End If
For Each oOle In Worksheets("Overview").OLEObjects
If TypeName(oOle.Object) = "TextBox" Then
oOle.Object.Value = ""
End If
If TypeName(oOle.Object) = "ComboBox" Then
oOle.Object.Value = ""
End If
If TypeName(oOle.Object) = "OptionButton" Then
oOle.Object.Value = False
End If
Next oOle
Workbooks.Open Filename:=strPfData
'LB neu fuellen
LBOverview.Clear
For i = 2 To leZeileD
With LBOverview
.AddItem Workbooks(strNaData).Worksheets(strShData).Cells(i, 1).Value
.List(.ListCount - 1, 1) = Workbooks(strNaData).Worksheets(strShData).Cells(i, 5). _
Value
.List(.ListCount - 1, 2) = Workbooks(strNaData).Worksheets(strShData).Cells(i, 2). _
Value
'aendern fuer department ***********************
If Workbooks(strNaData).Worksheets(strShData).Cells(i, 8).Value = "PC" Then
check = check & " " & Workbooks(strNaData).Worksheets(strShData).Cells(i, 2). _
Value
End If
End With
Next
Tasks.Value = check
'checken ob Reset ausgeloest wurde
Select Case khalten
Case "False"
Workbooks(strNaData).Close SaveChanges:=False
GoTo Gut
End Select
For i = 1 To 26
If i = 5 Then i = 9
If i = 15 Then i = 16
If i = 17 Then i = 18
If i = 19 Then i = 22
Workbooks(strNaPC).Worksheets(1).OLEObjects("TextBox" & i).Object.Value = Workbooks( _
strNaData).Worksheets(strShData).Cells(k, i).Value
Next
CBDevice.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 15).Value
CBLocation.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 17).Value
CBUser.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 20).Value
CBUserLog = Workbooks(strNaData).Worksheets(strShData).Cells(k, 21).Value
CBProcess.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 19).Value
CBStatus.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 6).Value
CBPrio.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 7).Value
CBError.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 5).Value
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "PC" Then PC.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "TL" Then TL.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "TS" Then TS.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "CS" Then CS.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "IC" Then IC.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "MA" Then MA.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "PE" Then PE.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "IT" Then IT.Value = True
Workbooks(strNaData).Close SaveChanges:=False
Gut:
End Sub

Anzeige
AW: VB-Listbox in Tabelle, markierte Zeile bestimmen
20.04.2011 14:02:17
Rudi
Hallo,
selber festlegen welcher Eintrag blau hinterlegt ist, waere natuerlich schoen wenn das ginge ohne das Click-Event auszuloesen

Dazu musst du dir den Listindex merken und wieder setzen. Das löst aber das Click-Event aus.
Zu deinem Code: Tippst du gerne?
    CBDevice.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 15).Value
CBLocation.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 17).Value
CBUser.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 20).Value
CBUserLog = Workbooks(strNaData).Worksheets(strShData).Cells(k, 21).Value
CBProcess.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 19).Value
CBStatus.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 6).Value
CBPrio.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 7).Value
CBError.Value = Workbooks(strNaData).Worksheets(strShData).Cells(k, 5).Value
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "PC" Then PC.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "TL" Then TL.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "TS" Then TS.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "CS" Then CS.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "IC" Then IC.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "MA" Then MA.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "PE" Then PE.Value = True
If Workbooks(strNaData).Worksheets(strShData).Cells(k, 8).Value = "IT" Then IT.Value = True

kann man wunderbar zu

With Workbooks(strNaData).Worksheets(strShData)
CBDevice.Value = .Cells(k, 15).Value
CBLocation.Value = .Cells(k, 17).Value
CBUser.Value = .Cells(k, 20).Value
CBUserLog = .Cells(k, 21).Value
CBProcess.Value = .Cells(k, 19).Value
CBStatus.Value = .Cells(k, 6).Value
CBPrio.Value = .Cells(k, 7).Value
CBError.Value = .Cells(k, 5).Value
Select Case .Cells(k, 8).Value
Case "PC": PC.Value = True
Case "TL": TL.Value = True
Case "TS": TS.Value = True
Case "CS": CS.Value = True
Case "IC": IC.Value = True
Case "MA": MA.Value = True
Case "PE": PE.Value = True
Case "IT": IT.Value = True
End Select
End With

verkürzen.
Gruß
Rudi
Anzeige
aber wie?
20.04.2011 14:22:30
abu
Hallo Rudi,
nein ich tippe nicht gerne und ich bin dir sehr dankbar fuer deinen Tip. Werde den gleich umsetzen und mir merken wie das geht.
Zu meinem Problem: das sind die ersten Erfahrungen die ich mit Steuerlementen in der Tabelle mache. Kommt es mir nur so vor oder ist es schwer als in einer UserForm?
Egal, kannst du mir bitte die Codezeile posten wie ich den ListIndex setze, so dass die Zeile in der Listbox blau hinterlegt ist (auch wenn er im Scrollbereich liegt)? Ich bekomm es einfach nicht hin (beides) . Das Click-Event koennte ich notfalls ja abfangen und merken ist ja kein Problem.
Wuerde mich echt freuen.
Beste Gruesse
abu
Anzeige
AW: aber wie?
20.04.2011 15:00:09
Rudi
Hallo,
Kommt es mir nur so vor oder ist es schwer als in einer UserForm?

Kommt dir nur so vor. Ist annähernd identisch.
Codezeile posten wie ich den ListIndex setze

Einfach setzen.
Listbox1.Listindex=GemerkterWert
Gruß
Rudi
Ich bin zu dumm dumm dumm...
20.04.2011 15:37:14
abu
...und bekomms einfach nicht hin.
Rudi, kannst du dir die Datei mal anschauen und mir sagen was ich falsch mache?
Das ganze ist sehr komisch. Habe jetzt mehrere ansaetze die mal funktionieren mal nicht.
Ausserdem wird meine ListBox auch immer kuerzer wenn ich die Datei oeffne und schliesse und ich versteh das alles nicht....
https://www.herber.de/bbs/user/74470.xls
Gruss
abu
Anzeige
was soll ich damit?
20.04.2011 15:47:13
Rudi
Hallo,
ich bekomme nur die
MsgBox "No updates available and no record has not been saved, the data file is in use!"
da ich keine der benötigten Dateien/ Ordner habe.
Gruß
Rudi
Daten Datei
20.04.2011 15:56:34
abu
Hallo Rudi,
hier ist die Daten Datei. Muesstest dann nur im Modul GlobalVar den Pfad von strPfData anpassen.
Wuerde mich freuen wenn du dir das mal anschauen wuerdest.
https://www.herber.de/bbs/user/74472.xls
Gruss
abu
TopIndex
20.04.2011 14:59:06
abu
Hallo Rudi,
habs. Ich muss den TopIndex auf ListCount setzen dann funzt es.
Hatte ich vorher auch schon probiert aber im Eigenschaftenfenster da wollte er aber nicht mehr als 8 annhemen.
Danke.
Gruss
abu
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige