Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1428to1432
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige