Lixbox maximal 10 Columns?
#1
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? :(
Antworten Top
#2
Hi,

http://www.excelmexel.de/HTMLExcel/listbox.htm
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Verzichte auf .Additem und .Controlsource; verwende .List =

Schau mal:

https://www.snb-vba.eu/VBA_Fill_combobox...ox_en.html
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
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
Antworten Top
#5
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")
Antworten Top
#6
Verwende Autofilter.

Und studiere With ... End With
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • tyr0n
Antworten Top
#8
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
Antworten Top
#9
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste