Clever-Excel-Forum

Normale Version: Hilfe bei Listbox in Userform
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Wenn ich die UF öffnen will kommt:

"Laufzeitfehler 9

Index außerhalb des gültigen Bereichs"
Hallo,

dann gibt es den Index arrArt(b + 1) des Arrays nicht...

Ich gehe davon aus, dass dein Fehler in der Ermittlung von anz = Application.Count(ws.Range(ws.Cells(3, 5), ws.Cells(3, ls))) liegt. Wonach Du hier suchst, weiß ich nicht.
Hallo, danke für die antworten. Aber ich denke ich gehe jetzt doch den Alternativen Weg, da es wohl doch komplizierter ist den Code anzupassen.

Ich habe jetzt schon eine 2. Listbox eingefügt, die auf eine Hilfspalte zugreift, die mir dann die Zahl in Listbox 1 als  Textbaustein anzeigt. Die Hilfsspalte erstelle ich über WENN blabla.

So lange in jedem Feld auch was steht geht das auch. Aber leider bekomme ich diese Wenn Formeln nicht so hin, das in jedem Feld was steht( Dazu müßte ich WennOder........Oder......) da habe ich aber Probs das hinzubekommen.

Daher momentan 2 Probleme mit diesem Code:

1. wie erkennt der Code auch noch nach Lücken den Text?
2. was müßte ich eingeben, das sich die Listbox sofort aktualisiert wenn sich in der Zeile was ändert.

Momentaner Coder der neuen Listbox:( Das mit Texbox3 stand so drin, ohne das kommts zu fehlern, is aber überflüßig)

Code:
Private Sub UserForm_Activate()

Call test

Me.LBDat.List = arrDat
Me.LBArt.List = arrArt

Me.LBDat.ListIndex = indDat + 1


   Worksheets("Hilfe").Activate
   Range("B2").Select
   
Me.TextBox3.Value = ""
   ' Liste zunächst löschen
   Me.ListBox1.Clear
   
   ' Liste neu füllen
   While ActiveCell.Value <> ""
       ListBox1.AddItem ActiveCell.Value
       ActiveCell.Offset(0, 1).Activate
   Wend
End Sub
Die Codezeile um die Listbox zu aktualisieren müßte hier mit eingebaut werden:

Code:
Sub Lieferung9084()
'
' Lieferung9084 Makro
'
With Sheets("Lieferungen")
   .Range("E3:X3").ClearContents
   .Range("J1:N1").Copy
   .Range("J3").PasteSpecial xlPasteAll
 
   
   End With
End Sub
Hallo,

ich blicke zwar bei deinem ganzen Projekt überhaupt nicht durch, aber sei es wie es sei. Verwende für dein Vorhaben eine For-Schleife, die bis zur letzten Spalte läuft. Im Schleifenrumpf fragst Du dann ab, ob die jeweils aktuelle Zelle nicht leer ist, wenn ja, AddItem...

Verzichte in deinem Code ausserdem auf Activate und Select. Referenziere deine Bezüge vollständig und verwendet With-Blöcke.

Code:
   ' Liste neu füllen
   With Worksheets("Hilfe")
       For i = 2 To .Cells(2, Columns.Count).End(xlToLeft).Column
           If .Cells(2, i).Value <> "" Then
               ListBox1.AddItem .Cells(1, i).Value
           End If
       Next i
   End With
Hallo,

danke, werd es mal probieren.
Hallo,

konnte beide Probleme mehr oder weniger alleine lösen. Mit deinem Codeausschnitt passierte nichts. Aber wie gesagt habs jetzt soweit das es so funktioniert wie ich es mir vorgestellt habe.

Aber wo kann ich die breite der Listbox so anpassen, das es nur so breit ist um die Zahlen anzuzeigen, aber keinen Scrollbalken unten darstellt?
Hallo, das konnte ich jetzt alles soweit lösen, das es auch optisch alles passt.

Aber: kann man das irgendwie abschalten, das in der Listbox das selektierte Element nicht farblich hinterlegt wird?  Bzw kann man die Schriftzeichen ganz ausblenden?? Ich habe die Liststyle....  eingeschaltet und möchte jetzt eigentlich nur die Auswahlmöglichkeit sehen und benutzen.
Hallöchen,

Zitat:Aber wo kann ich die breite der Listbox so anpassen, das es nur so breit ist um die Zahlen anzuzeigen

Ziehe die Listbox einfach auf ausreichende Breite. Die Breite einzelner Spalten kannst Du über ColumnWiths einstellen

Zitat:kann man das irgendwie abschalten, das in der Listbox das selektierte Element nicht farblich hinterlegt wird?

Mir fällt im Moment gerade nicht ein, wie ich es in VBA / Excel hinbekommen soll, dass das markierte Element nicht farblich hinterlegt wird, ergo auch nicht, wie man das abschallten kann Sad
Hallo, danke für die Antwort.

Das mit dem Auseinanderzeihen is klar, aber ich wollte das schmaler haben ohne Balken, aber egal passt schon.
Hallöchen,

dann experimentiere mal mit ColumnWiths. Excel VBA ist da etwas inkonsequent. Wenn Deine Listbox breiter ist als die Summe der Spaltenbreiten, wird ggf. kein Scrollbalken angezeigt. Wenn Du z.B. in einer einspaltigen LiBo 1 einstellst und sie ist 40 breit, dann werden so viele Zahlen angezeigt, wie auf die 40 passen. Bei mehreren Spalten musst Du schauen, wie es passt. Mit Breite 1 in der ersten Spalte siehst Du da recht wenig Smile
Seiten: 1 2 3