Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox eintrag verschiebt sich

Forumthread: Listbox eintrag verschiebt sich

Listbox eintrag verschiebt sich
02.06.2015 17:40:27
SigiF
Hallo,
in einer UF-Listbox lasse ich diese wie nachfolgend füllen.
Das funktioniert auch.
Die Listbox befindet sich in einem Frame einer Userform.
Jedesmal wenn ich den Frame und aufrufe wird die Listbox zwar gefüllt, jedoch verschiebt sich der Eintrag in der Listbox nach jedem Aufruf um 2 Spalten nach unten.
Die Spalten sind leer!
10 x Aufrufen bedeutet, das der erste Eintrag ab der Spalte 21 beginnt. Alles andere ist leer.
Danke!
Gruß
Sigi
Option Explicit
Private Declare PtrSafe

Function SafeArrayGetDim Lib "oleaut32.dll" ( _
ByRef pArray() As Any) As Long

Sub KD_einlesen()
Dim iRowU As Integer, ii As Integer
Dim arr()
Set WkbD = Workbooks(sData)
Set WksKD = WkbD.Worksheets(KD)
frmStart.lstAlle.Clear
With WksKD
For ii = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If Not IsEmpty(.Cells(ii, 1)) Then
ReDim Preserve arr(0 To 4, 0 To iRowU)
arr(0, iRowU) = .Cells(ii, 1)
arr(1, iRowU) = .Cells(ii, 2)
arr(2, iRowU) = .Cells(ii, 3)
arr(3, iRowU) = .Cells(ii, 27)
arr(4, iRowU) = " "
iRowU = iRowU + 1
End If
Next ii
End With
If SafeArrayGetDim(arr)  0 Then .lstAlle.Column = arr
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox eintrag verschiebt sich
03.06.2015 10:57:11
fcs
Hallo Sigi,
ich hab keine Ahnung, was die Function
"SafeArrayGetDim" macht / anrichtet.
aber eigentlich sollte es so funktionieren:
Sub KD_einlesen()
Dim iRowU As Integer, ii As Integer
Dim arr()
Set wkbD = Workbooks(sData)
Set WksKD = wkbD.Worksheets(KD)
frmStart.lstAlle.Clear
With WksKD
For ii = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If Not IsEmpty(.Cells(ii, 1)) Then
ReDim Preserve arr(0 To 4, 0 To iRowU)
arr(0, iRowU) = .Cells(ii, 1)
arr(1, iRowU) = .Cells(ii, 2)
arr(2, iRowU) = .Cells(ii, 3)
arr(3, iRowU) = .Cells(ii, 27)
arr(4, iRowU) = " "
iRowU = iRowU + 1
End If
Next ii
End With
If iRowU > 0 Then frmStart.lstAlle.Column = arr
End Sub
Gruß
Franz

Anzeige
AW: Listbox eintrag verschiebt sich
03.06.2015 23:56:47
SigiF
Hallo Franz,
Danke für Deine Antwort.
Ich habe meinen Fehler eben gefunden, es lag daran, dass ich Public iRowU as Integer in einem Modul verwandt habe.
Das If SafeArrayGetDim(arr) 0 Then .lstAlle.Column = arr
vermeidet den Laufzeitfehler 380. Habe ich hier vom Forum.
Danke!
Gruß
Sigi
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige