Clever-Excel-Forum

Normale Version: Listbox soll keine leeren Zeilen einlesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebe Experten für VBA.
Code:
With Worksheets("Kundendistanz") 'Einlesen in die Listbox
   ListBox1.RowSource = "Kundendistanz!" & .Range(.Cells(4, 1), .Cells(700, 21)).Address
End With

Überall, wo ich suche, sehe ich Antworten, die eine FOR...NEXT Schleife in Verbindung mit dem Befehl ADDITEM haben.
Aber ich habe in meiner Anweisung zum Einlesen keine FOR..NEXT und ADDITEM.

Ich habe mal versucht VOR dem Einlesen den Bereich mit Variablen für die Zeile 4 bis Zeile 700 anzugeben.
Das ging total daneben.

Weiß jemand, was ich meinem Code oben einbauen muss, damit das hier auch funktioniert?
Hallo,

so funktioniert es schon mal:


Code:
With Worksheets("Kundendistanz") 'Einlesen in die Listbox
  ListBox1.List = Range(.Cells(4, 1), .Cells(700, 21)).Value
End With
@Klaus-Dieter: Fehlt da vor Range nicht ein Punkt?
Hallo,

kann man machen, muß man nicht, weil die vor der Cells-Anweisung stehen, wo sie auch hingehören.
Hallo Klaus-Dieter,

erst einmal vielen Dank für die Korrektur der Zeile.
Das funktioniert so prima.
Aber jetzt habe ich das Problem, dass die Listbox in der Spalte 21 eine Fließkommazahl zeigt.
Im Tabellenblatt erscheint mit meiner Formatierung z.B. "22,7 Km".

Wenn ich dann das hier so ändere, kommt der Fehler Typenunverträglichkeit.
Ist ja auch klar, die anderen Spalten haben keine Zahlen drin.
Code:
ListBox1.List = Format(.Range(.Cells(4, 1), .Cells(700, 21)), "#,#0.0 Km").Value

Also neue Zeile , die nur die Spalte 21 anspricht. Geht aber auch nicht.
Code:
ListBox1.List = Format(.Range(.Cells(4, 21), .Cells(700, 21)), "#,#0.0 Km").Value

Dann wollte ich mal eine For Next einsetzen..... Klappt auch nicht.
Code:
For x = 4 To 700
     ListBox1.List(x, 21) = Format(Worksheets("Kundendistanz").Range("U") & x, "#,##0.0 Km")
Next x

Wie bekomme ich in der Spalte 21 die Fließkommazahl in eine Dezimalzahl mit einer Nachkommastelle?
Hallo,

zeige mal deine Datei.
Hier ist sie.
Gruß Achim
Hallo Achim,

du kannst die Werte in Spalte 21 hart runden. So:  =WENN(H6>0;RUNDEN(T6*111,17;1);"")
Hallo Klaus-Dieter,

nun ja, jetzt ist zwar alles auf ,1 in der Spalte....Sieht irgendwie nicht besonders gut aus....
Aber besser als zuvor.

Was für krasse Unterschiede hier zum Tragen kommen.
Mit der Variante, die ich als erstes anwendete, sah zwar die Spalte gut aus,
hatte aber die ganzen Leerzeilen mit drin.

Jetzt sind die Leerzeilen weg, aber dafür auch die schöne Formatierung....
Hmmm….. Muss ich wohl diesen Kompromiss eingehen....

Ich danke dir für die Hilfe....
Schönen Abend noch.....
Hallo Achim,


Zitat:aber dafür auch die schöne Formatierung....

Excel ist eine Tabellenkalkulation, kein Präsentationsprogramm.
Seiten: 1 2