Clever-Excel-Forum

Normale Version: Lixbox maximal 10 Columns?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Community,

ich fülle eine Listbox mit:

Code:
ListBox1.ColumnWidths = "18pt;27pt;65pt;72pt;55pt;100pt;100pt;55pt;50pt;40pt"
With Worksheets("Aufgaben")
        ReiheNr = 3
            With ListBox1
              Do While IsEmpty(Worksheets("Aufgaben").Cells(ReiheNr, 1)) = False
              If Worksheets("Aufgaben").Cells(ReiheNr, 8) = "Aufgabe" And Worksheets("Aufgaben").Cells(ReiheNr, 12) = Environ$("username") Then
                .AddItem ""
                .Column(0, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 1)
                .Column(1, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 4)
                .Column(2, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 5)
                .Column(3, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 7)
                .Column(4, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 9)
                .Column(5, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 10)
                .Column(6, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 14)
                .Column(7, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 13)
                .Column(8, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 11)
                .Column(9, .ListCount - 1) = Worksheets("Aufgaben").Cells(ReiheNr, 15)
            End If
            ReiheNr = ReiheNr + 1
            Loop
            End With
End With

Das sind 10 Columns. Jetzt würde ich gerne eine weitere Column hinzufügen. Leider bringt er mir dann ein Fehler "Eigenschaft Column konnte nicht gesetzt werden" Sind maximal nur 10 Columns möglich? :(
Verzichte auf .Additem und .Controlsource; verwende .List =

Schau mal:

https://www.snb-vba.eu/VBA_Fill_combobox...ox_en.html
Hallo,

Code:
With ListBox1
  .ColumnWidths = "18pt;27pt;65pt;72pt;55pt;100pt;100pt;55pt;50pt;40pt"
  .List = Worksheets("Aufgaben").Cells(3, 1).CurrentRegion.Value
  .List = Application.Index(.List, Evaluate("row(3:" & .ListCount & ")"), Array(1, 4, 5, 7, 9, 10, 14, 13, 11, 15))
End With

Siehe auch hier: https://www.clever-excel-forum.de/Thread...#pid245954

Gruß Uwe
Besten Dank euch allen! Ich habe es hinbekommen  18

Zu früh gefreut. Wie bekomme ich da sinnvoll meine if abfrage noch rein gepackt?
Der soll nur die Zeilen die in der Spalte 8 = Aufgabe und Spalte 12 = Environ$("username") nehmen.

If Worksheets("Aufgaben").Cells(ReiheNr, 8) = "Aufgabe" And Worksheets("Aufgaben").Cells(ReiheNr, 12) = Environ$("username")
Verwende Autofilter.

Und studiere With ... End With
Code:
With ListBox1
  .ColumnWidths = "18;27;65;72;55;100;100;55;50;40"
  .List = Sheets("Aufgaben").Cells(3, 1).CurrentRegion.Value

  for j = 0 to .listcount-1
    if .list(j,7) & .List(j,11)="Aufgabe" & Environ("username") then c00 = c00 & " " & j + 1
  next
  sn = application.transpose(split(trim(c00)))

  .List = Application.Index(.List, sn, Array(1, 4, 5, 7, 9, 10, 14, 13, 11, 15))
End With
Guten Morgen snb,

deine Codes funktionieren wie immer perfekt! Vielen Dank dafür. Natürlich versuche ich die zu verstehen, was leider nicht immer (als nicht Programmierer) klappt.
So versuche ich die If Abfrage zu erweitern. Allerdings klappt es nicht.
So war Sie original:

Code:
If .List(j, 7) & .List(j, 12) = "Aufgabe" & Environ$("username") Then c00 = c00 & " " & j + 1


Ich versuche nun auch noch alles was in j,14 <> "erledigt" ist anzuzeigen. 


Code:
If .List(j, 7) & .List(j, 12) = "Aufgabe" & Environ$("username") And .List(j, 14) <> "erledigt" Then c00 = c00 & " " & j + 1

Das funktioniert allerdings nicht. 

Die Abfrage soll ähnlich diese hier sein:

Code:
If Worksheets("Aufgaben").Cells(ReiheNr, 8) = "Aufgabe" And Worksheets("Aufgaben").Cells(ReiheNr, 12) = Environ$("username") And Worksheets("Aufgaben").Cells(ReiheNr, 15) <> "erledigt" Then


Was mache ich hier falsch?

Viele Grüße Steve
Code:
If (.List(j, 7) & .List(j, 11) = "Aufgabe" & Environ$("username"))*(.List(j, 14)<>"erledigt") Then c00 = c00 & " " & j + 1
Ist identisch zu:

with sheets("Aufgaben")
If .Cells(ReiheNr, 8) = "Aufgabe" And
.Cells(ReiheNr, 12) = Environ$("username") And
.Cells(ReiheNr, 15) <> "erledigt" Then
End With
Hallo snb,

Vielen Dank für deine nochmalige Unterstützung, allerdings funktioniert das leider nicht. 

Code:
    If (.List(j, 7) & .List(j, 11) = "Aufgabe" & Environ$("username")) * (.List(j, 14) <> "erledigt") Then c00 = c00 & " " & j + 1

gibt mir ein "Typen unverträglich". 

wenn ich

Code:
* (.List(j, 14) <> "erledigt")

lösche, dann klappt der code, allerdings zeigt er mir auch erledigte in der Listbox.

Hier der ganze Code:

Code:
With ListBox2
  .ColumnWidths = "18;27;60;80;72;55;100;80;55;50;40"
  .List = Sheets("Aufgaben").Cells(3, 1).CurrentRegion.Value

  For j = 0 To .ListCount - 1
    If (.List(j, 7) & .List(j, 11) = "Aufgabe" & Environ$("username")) * (.List(j, 14) <> "erledigt") Then c00 = c00 & " " & j + 1
  Next
  sn = Application.Transpose(Split(Trim(c00)))
 
  .List = Application.Index(.List, sn, Array(1, 4, 5, 6, 7, 9, 10, 14, 12, 11, 15))
 
End With
Seiten: 1 2