Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1568to1572
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

Problem mit Listbox

Problem mit Listbox
30.07.2017 12:53:43
Peter
Hallo ihr Excelspezialisten,
ich habe ein Problem mit einer ListBox.
Mittels der Listbox wird der jeweilige Eintrag ausgewählt. Die Daten werden in die
Textboxes eingetragen. Mittels CombiBox wird dann Wert in einer TextBox geändert und
mittels Button wird der Wert in die Tabelle übernommen und gleichzeitig der Wert von dieser TextBox und einer anderen in eine andere Tabelle übernommen.
Nun zu meinem Problem:
die gewählten Daten der Tabelle werden in der Listbox anschliessend immer aktualisiert. Ist jedoch der letzte Eintrag vorhanden, wird dieser nicht mehr ordnungsgemäss nebeneinander aufgelistet sondern untereinander.
Damit ist der Datensatz nicht mehr wählbar.
Könnt ihr mir bitte bei der Lösung des Problems helfen.
Vorab erst einmal den Code zum Füllen der Listbox 3 und 4 nachstehend es betrifft jedoch nur ListBox4:
Private Sub UserForm_Activate()
'Anfang ListBox3
Dim iZeile3 As Long, i3 As Integer
Dim iCounter3 As Long: iCounter3 = 0
With ListBox3
.ColumnCount = 12
.ColumnWidths = "3,2cm;3cm;2,5cm;2,5cm;3cm;2,5cm;2,5cm;2,5cm;2,5cm;2,5cm;2,5 cm"
.Clear
End With
With Worksheets("Personaldatei_aktuell")
For iZeile3 = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
'        If .Cells(iZeile, 5) = 0 Then
If iCounter3 = 0 Then
ReDim ar(12, iCounter3)
Else
ReDim Preserve ar(12, iCounter3)
End If
For i3 = 0 To 11
ar(i3, iCounter3) = .Cells(iZeile3, i3 + 1)
Next i3
ar(12, iCounter3) = iZeile3
iCounter3 = iCounter3 + 1
'        End If
Next iZeile3
ListBox3.List = Application.Transpose(ar)
End With
'Ende Listbox3
'Anfang ListBox4
Dim iZeile4 As Long, i4 As Integer
Dim iCounter4 As Long: iCounter4 = 0
With ListBox4
.ColumnHeads = True
.ColumnCount = 10
.ColumnWidths = "3,2cm;3cm;2,5cm;2,5cm;3cm;2,5cm;2,5cm;2,5cm;2,5cm;2,5cm"
.Clear
End With
With Worksheets("Personaldatei_aktuell")
For iZeile4 = 1 To .Cells(Rows.Count, 4).End(xlUp).Row
'        If .Cells(iZeile4, 4) = 0 Then                                     'funktioniert nicht  _
kein Ausschluss wenn Wert in Spalte A leer
If .Cells(iZeile4, 4) = 0 And .Cells(iZeile4, 1).Value  "" Then   'funktioniert
'        If .Cells(iZeile4, 4) = 0 And .Cells(iZeile4, 1)  "" Then         'funktioniert auch
If iCounter4 = 0 Then
ReDim ar(11, iCounter4)
Else
ReDim Preserve ar(11, iCounter4)
End If
For i4 = 0 To 10
ar(i4, iCounter4) = .Cells(iZeile4, i4 + 1)
Next i4
ar(11, iCounter4) = iZeile4
iCounter4 = iCounter4 + 1
End If
Next iZeile4
ListBox4.List = Application.Transpose(ar)
End With
End Sub

Danke für eure Hilfe.
Sollte eine Musterdatei erforderlich sein, reiche ich diese nach.
Gruss
Peter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Listbox
31.07.2017 09:51:03
mmat
Hallo,
ich will ja nicht behaupten, das ich verstehe was du da treibst (vielleicht hilft ja ein screenshot), aber ".ColumnCount = 10" und "For i4 = 0 To 10"(=11 Dimensionen) passt irgendwie nicht zusammen.
vg, MM
AW: Problem mit Listbox
31.07.2017 10:11:59
Peter
Hallo MM,
danke für den Hinweis bezüglich ColumnCount. Bisher ist hier kein Fehler aufgetaucht - werde ich aber
noch Prüfen.
Anbei die beiden Screenshots:
Userbild
Userbild
Das eine Bild zeigt die Listbox mit noch zwei Zeilen. Diese zu bearbeiten läuft einwandfrei.
Nach jeder Änderung wird die Listbox neu aktiviert um den aktuellen Stand zu zeigen und dann
entsteht das zweite Bild.
Ich hoffe es hilft um das Problem zu verstehen.
Danke für Deine Hilfe.
Gruss
Peter
Anzeige
AW: Problem mit Listbox
31.07.2017 10:49:04
mmat
Naja, es ist zumindest ein Unterschied zu Listbox 3, mit Columcount = 12 und 'ner Schleife bis 11.
Zum Screenshot: gehe ich recht in der Annahme, das der 2. die Fehlersituation wiedergibt? Das sollte nebeneinander erscheinen ?
vg, MM
AW: Problem mit Listbox
31.07.2017 10:51:45
Peter
Hallo MM,
richtig das zweite Bild zeigt den Fehler an. Es sollte nebeneinander erscheinen und nicht untereinander.
damit die Zeile ausgewählt und bearbeitet werden kann.
Gruss
Peter
AW: Problem mit Listbox
31.07.2017 12:25:56
mmat
Hallo Peter,
naja ich hab mal versucht das nachzubauen, der Fehler tritt bei mir nicht auf. Egal ob ich eine Zeile lese oder 6. Dein Code aus der Initialisierung des Forms wird doch wohl nur einmal ausgeführt. An welcher Stelle passiert eigentlich die Aktualisierung?
Das mit dem Columcount: Dir müsste im Normalfall hinten eine Spalte fehlen, mehr Probleme macht dieser Bug nicht.
vg, MM
Anzeige
AW: Problem mit Listbox beseitigt
31.07.2017 12:34:15
Peter
Hallo MM,
ich habe meine UF nochmals neu aufgebaut mit den vorhandenen Daten und es funktioniert bei mir jetzt
ebenfalls. Meine Vermutung liegt im wesentlichen, dass ich das ganze in Userform_activate und nicht
in Userform_initialize.
Die Aktualisierung erfolgt am Ende des Eintrags in die Tabelle per Button.
Nochmals besten Dank für Deine Bemühungen - wichtig ist das Ergebnis. Es ist wunderbar wie ihr
in dem Herber-Team uns Laien bei unseren Problemen weiterhelft.
Einen schönen Tag noch..
Gruss
Peter
AW: erneut Problem mit Listbox
31.07.2017 17:36:38
Peter
Hallo MM,
es ist schon sehr eigenartig. Ich habe heute vormittag mit dem Programm gearbeitet. Alle Tests waren
o. k..
Als ich jetzt das Programm wieder starten will, geschieht mit dem Füllen der Listbox das gleiche, wie
auf den Bildern dargestellt.
Mir ist das Ganze rätselhaft.
Ich weiss mir keinen Rat mehr, was ich machen kann.
Wer weiss mir einen Rat.
Gruss
Peter
Anzeige
AW: erneut Problem mit Listbox
31.07.2017 17:49:46
Peter
Hallo MM,
Nachtrag zum letzten Eintrag:
ChrisL hat mir folgende Datei erstellt: https://www.herber.de/bbs/user/113765.xlsm
Diese Datei habe ich übernommen.
Was jedoch erst jetzt bei der Prüfung sich ergibt, ist es auch hier nicht möglich den Eintrag zu
selektieren, wenn nur noch ein offener Wert in der Tabelle vorhanden ist.
Wer weiss mir hier einen Rat, wie dieser Fehler zu beseitigen ist.
Besten Dank für Deine, eure Hilfe.
Gruss
Peter
AW: erneut Problem mit Listbox
01.08.2017 10:51:32
mmat
Hi,
>> Mir ist das Ganze rätselhaft.
mir auch. Willkommen im Club.
Das Problem ist bei mir mit deiner Beispielmappe reproduzierbar, mit meinem eigenen Code nicht(!!!) und ich finde nicht raus warum. Transpose scheitert aus irgend einem Grund, wenn das Array nur eine Zeile hat.
So befüllt man eine Listbox normalerweise:
Private Sub CommandButton2_Click()
Dim r As Long, idx As Long, c As Long
With ListBox1
.ColumnHeads = True
.ColumnCount = 11
.ColumnWidths = "3,2cm;3cm;2,5cm;2,5cm;3cm;2,5cm;2,5cm;2,5cm;2,5cm;2,5cm"
.Clear
End With
With ActiveSheet
For r = 2 To .Cells(Rows.Count, 4).End(xlUp).Row
If .Cells(r, 4) = 0 And .Cells(r, 1).Value  "" Then 'Bedingungen anpassen!
ListBox1.AddItem Cells(r, 1)
idx = ListBox1.ListCount - 1
For c = 2 To 10
ListBox1.List(idx, c - 1) = .Cells(r, c)
Next
End If
Next
End With
End Sub
Der Trick mit dem Transpose ist wesentlich performanter, den Unterschied merkt man aber erst bei ein paar hundert Zeilen in der Listbox.
I hope it helbs
MM
Anzeige
AW: gelöst
01.08.2017 11:00:14
Peter
Hallo MM,
das ganze ist schon recht eigenartig.
Habe das getestet - läuft einwandfrei.
Besten Dank für Deine Hilfe.
Wünsche Dir noch einen schönen Tag.
Gruss
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige