Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
ListBox leere Zeilen nicht einlesen
30.12.2005 09:54:08
Ernst
Guten Tag Forum
Ich möchte aus einer beliebigen Tabelle aus mit einer ListBox bzw. UserForm Werte aus Tabelle1 der gleichen Arbeitsmappe anzeigen. Die Werte sollen ab Zeile 5 bis 20 der Spalten B und D angezeigt werden, jedoch müssten leere Zeilen in der ListBox nicht erscheinen.
Das unten stehende Makro funktioniert innerhalb der aktiven Tabelle und zeigt leere Zeilen an!
Wie müsste der Code abgeändert werden um leere Zeilen nicht in die ListBox einzulesen und der Zugriff sich auf die Tabelle1 bezieht?
Für eine Antwort bin ich dankbar.
Mit freundlichen Grüßen
Ernst Dunkel

Private Sub UserForm_initialize()
Dim i As Integer
ListBox1.ColumnCount = 2                 '2 = Anzahl Spalten
For i = 1 To 20
ListBox1.AddItem Cells(i, 2)                '2 = Spalte B
ListBox1.List(i - 1, 1) = Cells(i, 4)        '4 = Spalte D
Next i
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox leere Zeilen nicht einlesen
30.12.2005 10:16:18
Peter
Hallo Ernst,
so sollte es gehen:


Private Sub UserForm_initialize()
Dim As Integer
        
   ListBox1.ColumnCount = 2                    ' 2 = Anzahl Spalten
   
   For i = 5 To 20
      If Not IsEmpty(Cells(i, 2).Value) Or _
         Not IsEmpty(Cells(i, 4).Value) Then
         ListBox1.AddItem Cells(i, 2)           ' 2 = Spalte B
         ListBox1.List(i - 1, 1) = Cells(i, 4)  ' 4 = Spalte D
      End If
   Next i
   
End Sub


Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: ListBox leere Zeilen nicht einlesen
30.12.2005 12:01:00
Peter
Hallo Ernst,
ich hatte mich nor auf die Abfrage ob Zellen lee konzentriert, nicht auf den Rest deines Makros.
So geht es aber:


Private Sub UserForm_initialize()
Dim iCell  As Integer
Dim iLiBo  As Integer
        
   ListBox1.ColumnCount = 2                    ' 2 = Anzahl Spalten
   
   For iCell = 5 To 20
      If Not IsEmpty(Cells(iCell, 2).Value) Or _
         Not IsEmpty(Cells(iCell, 4).Value) Then
         ListBox1.AddItem
         ListBox1.List(iLiBo, 0) = Cells(iCell, 2)  ' 2 = Spalte B
         ListBox1.List(iLiBo, 1) = Cells(iCell, 4)  ' 4 = Spalte D
         iLiBo = iLiBo + 1
      End If
   Next iCell
   
End Sub


Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: ListBox leere Zeilen nicht einlesen
30.12.2005 10:17:06
Ingo
Ungetestet:

Private Sub UserForm_initialize()
Dim i As Integer
ListBox1.ColumnCount = 2                 '2 = Anzahl Spalten
For i = 1 To 20
If cells(i,2) <>"" And Cells(i,4) <> "" then
ListBox1.AddItem Cells(i, 2)                '2 = Spalte B
ListBox1.List(i - 1, 1) = Cells(i, 4)        '4 = Spalte D
End if
Next i
End Sub

mfG
Ingo Christiansen
Laufzeitfehler
30.12.2005 11:35:25
Ernst
Hallo Peter / Ingo
vielen Dank für Eure Bemühungen.
Sobald ich Euren Code einfüge und das Makro starte, kommt Laufzeitfehler 381:
"Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftfeldes ungültig!"
Wenn ich debugge, scheint der Fehler in der UserForm1 zu sein!
Muss ich irgendwo noch was einstellen? Bitte um weitere Hilfe.
mfg
Ernst Dunkel
Anzeige
AW: Laufzeitfehler
30.12.2005 11:46:57
Ingo
hallo ernst.
die Variable i kann nicht mehr benutzt werden um den Listindex festzulegen.
Probier mal:

Private Sub UserForm_initialize()
Dim i As Integer,x as integer
ListBox1.ColumnCount = 2                 '2 = Anzahl Spalten
For i = 1 To 20
If cells(i,2) <>"" And Cells(i,4) <> "" then
ListBox1.AddItem Cells(i, 2)                '2 = Spalte B
ListBox1.List(x, 1) = Cells(i, 4)        '4 = Spalte D
x= x+1
End if
Next i
End Sub

mfG
Ingo Christiansen
Zusatzfrage
30.12.2005 12:19:55
Ernst
Hallo Ingo
vielen Dank es funktioniert, aber da bleibt noch eine Frage offen:
Wie kann ich aus einer beliebigen Tabelle der gleichen Arbeitsmappe auf die Tabelle1 zugreifen? (Der Code funktioniert nur innerhalb der gleichen Tabelle!)
Anzeige
Laufzeitfehler
30.12.2005 11:35:25
Ernst
Hallo Peter / Ingo
vielen Dank für Eure Bemühungen.
Sobald ich Euren Code einfüge und das Makro starte, kommt Laufzeitfehler 381:
"Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftfeldes ungültig!"
Wenn ich debugge, scheint der Fehler in der UserForm1 zu sein!
Muss ich irgendwo noch was einstellen? Bitte um weitere Hilfe.
mfg
Ernst Dunkel
Laufzeitfehler
30.12.2005 11:35:25
Ernst
Hallo Peter / Ingo
vielen Dank für Eure Bemühungen.
Sobald ich Euren Code einfüge und das Makro starte, kommt Laufzeitfehler 381:
"Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftfeldes ungültig!"
Wenn ich debugge, scheint der Fehler in der UserForm1 zu sein!
Muss ich irgendwo noch was einstellen? Bitte um weitere Hilfe.
mfg
Ernst Dunkel
Anzeige
AW: Laufzeitfehler
30.12.2005 12:03:27
Peter
Hallo Ernst,
sieh bitte meine Antwort von 12:01, etwas weiter oben in diesem Thread.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Laufzeitfehler
30.12.2005 12:56:36
Ernst
Hallo Peter
Vielen Dank, Dein Code ist auch super.
Jetzt ist nur noch die Frage offen, wie der Zugriff von einer anderen Tabelle aus auf die Tabelle1, wo die Daten in der ListBox erscheinen sollen sein muss.
AW: Laufzeitfehler
30.12.2005 13:27:11
Peter
Hallo Ernst,
genügt da nicht Sheets("Tabelle1").Activate ?
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Laufzeitfehler
30.12.2005 13:56:12
Ernst
Hallo Peter
Im Prinzip schon, nur öffnet sich dann die Tabelle1 und das möchte ich nicht. Es soll nicht auf die Tabelle1 gewechselt werden. Am liebsten hätte ich es so, dass die ListBox1 offen bleibt und ich trotzdem in der aktiven Tabelle arbeiten kann.
Anzeige
AW: Laufzeitfehler
30.12.2005 14:30:35
Peter
Hallo Ernst,
dann setze doch bei der UserForm unter Eigenschaften ShowModal auf False
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Laufzeitfehler
30.12.2005 15:00:29
Herbert
hallo Ernst,


Dim sh As Worksheet
Set sh = Sheets("Tabelle1")
'----
.AddItem sh.Cells(i, 2)
'-----

     gruß Herbert
Anzeige
sh.Cells
30.12.2005 16:43:50
Ernst
Hallo Peter / Herbert
Dank Eurer Hilfe funktioniert der Code nun so wie ich es wollte!.
Herbert es hat noch eine weile gedauert bis ich Deinen Hinweis richtig verstanden habe!
Der überarbeitetet Code ist unten.
Vielen Dank
Ernst Dunkel

Private Sub UserForm_initialize()           'in UserForm1 > ShowModal = False  setzen
Dim i As Integer
Dim x As Integer
Dim sh As Worksheet
Set sh = Sheets("Tabelle1")
ListBox1.ColumnCount = 2               '2 = Anzahl Spalten
For i = 1 To 20
If sh.Cells(i, 2) <> "" And sh.Cells(i, 4) <> "" Then
ListBox1.AddItem sh.Cells(i, 2)                           '2 = Spalte B
ListBox1.List(x, 1) = sh.Cells(i, 4)                      '4 = Spalte D
x = x + 1
End If
Next i
End Sub

Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige