Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Wieviel spalten in einer Listbox? | Herbers Excel-Forum


Betrifft: Wieviel spalten in einer Listbox? von: ray
Geschrieben am: 13.01.2010 10:45:28

Hallo,

obwohl ich die Eigenschaft Columcount meiner Listbox auf 32 gesetzt habe, werden mir nur 20 Spalten angezeigt.

Woran kann das liegen?

Der Code zum füllen der ListBox:

Private Sub UserForm_Initialize()
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
   Dim wbk As Workbook
   Dim wks As Worksheet
 
   Application.ScreenUpdating = False
   
   Set wbk = Workbooks.Open("F:\daten\VeListe.xls")

   Application.ScreenUpdating = False
   
           Set wks = wbk.Sheets(2)
            wks.Select
            With ListBox1
               .List = Range("A1").CurrentRegion.Value
               If .ListCount > 0 Then .ListIndex = 0
            
            End With
         
    wbk.Close SAVECHANGES:=False
            
   Set wbk = Nothing
   Set wks = Nothing
   
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START

Sheets("leer").Select
Application.ScreenUpdating = True




End Sub


Viele Grüße aus Hamburg

Ray

  

Betrifft: Wie groß ist Deine Liste??? oT von: Björn B.
Geschrieben am: 13.01.2010 10:54:23




  

Betrifft: 35 Spalten mit 640 Zeilen. oT von: ray
Geschrieben am: 13.01.2010 10:58:05

pt


  

Betrifft: überprüf mal "CurrentRegion" von: Björn B.
Geschrieben am: 13.01.2010 11:03:17

Hallo,

lass Dir mal CurrentRegion ausgeben, vielleicht stimmt da was nicht...

msgbox Range("A1").CurrentRegion.Address

bei 35 Spalten und 640 Zeilen sollte als Ergebnis "$A$1:$AI$640" rauskommen.
Da bei dir nur 20 angezeigt werden, vermute ich, dass "$A$1:$T$640" da steht.

Sonst weiß ich es nicht. Bei mir funktioniert es, hab es mit 50 Spalten getestet, werden alle angezeigt.

Gruß
Björn B.


  

Betrifft: AW: überprüf mal "CurrentRegion" von: ray
Geschrieben am: 13.01.2010 11:22:29

liefert $A$1:$S$619

619 stimmt. S ist aber zu wenig. Muss in allen Spalten etwas stehen?

Gruß Ray


  

Betrifft: AW: überprüf mal "CurrentRegion" von: Björn B.
Geschrieben am: 13.01.2010 11:37:14

Hallo,

Muss in allen Spalten etwas stehen?

ja, so ist es. Woran soll Excel denn erkennen, dass ne leere Spalte dazugehört?

Du kannst das ganze fix eintragen, also über die Adresse der Range direkt oder du ermittelst Dir anhand irgendeiner Logik deine letzte Spalte (wenn es variabel sein soll).
Über Suchbegriffe oder über letzte befüllte Spalte oder...

Gruß
Björn B.


  

Betrifft: kleiner Tipp am Rande.. von: Björn B.
Geschrieben am: 13.01.2010 11:52:02

"dilettantisch" schreibt man übrigens so.
Fremdworte sollte man nur benutzen, wenn man sie auch versteht und schreiben kann ;-)

Gruß
Björn B.


  

Betrifft: war Absicht, aber von: ray
Geschrieben am: 13.01.2010 11:58:13

...Ironie versteht nciht jeder. werd das korrigieren, bevor man mich für noch blöder hält...

Gruß Ray


  

Betrifft: na dann.. von: Björn B.
Geschrieben am: 13.01.2010 12:00:30

... entschuldige. War nicht böse gemeint.

Klappt es jetzt eigentlich mit der Listbox?

Gruß
Björn B.


  

Betrifft: AW: na dann.. von: ray
Geschrieben am: 13.01.2010 12:09:27

Kein Grund für ne Entschuldigung, war ein netter hinweis. An der Listbox ist Hajo dran... das wird schon.

Gruß Ray


  

Betrifft: Schon mal die ColumnWidht-Einstellung geprüft? von: Daniel
Geschrieben am: 13.01.2010 23:45:20

Hi.
vielleicht werden die fehlenden Spalten ja auch über die .ColumnWidth-Einstellungen der Listbox ausgeblendet.
Was steht denn in dieser Eigenschft.

Gruß. Daniel


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: Hajo_Zi
Geschrieben am: 13.01.2010 11:05:07

Hallo Ray,

ich weise den Bereich meist immer so zu.

Private Sub UserForm_Activate()
    Dim rngSource As Object
    Dim intColums As Integer
    ListBox1.Tag = 1
    Set rngSource = Range("A1").CurrentRegion
    ' Die oberste Zeile enthaelt die Feldnamen.
    ' Diese brauchen wir nur dort um die Columnheader darzustellen,
    ' aber nicht fuer die Listboxeintraege.
    ' Also den Datenbereich um die Erste Zeile reduzieren.
    Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns. _
Count)
    ' Spaltenanzahl des Datenbereichs ermitteln.
    intColums = rngSource.Columns.Count
    With Me.ListBox1
        .ListStyle = fmListStyleOption      ' Auswahlfeld zu Beginn der Zeile
        ' von Peter Haserodt
        ' nur eine Auswahl, bei .ListStyle = fmListStyleOption Optionbutton in Listbox
        '.MultiSelect = fmMultiSelectSingle
        ' mehrere können ausgewählt werden,.ListStyle = fmListStyleOption checkboxen in Listbo
        .MultiSelect = fmMultiSelectMulti
        '.MultiSelect = fmMultiSelectExtended
        ' gibt eigentlich nur bei Liststyle Plain einen Sinn, funzt aber auch anders.
        ' Dies bewirkt, dass mit Shift und Strg Tasten  eine Mehrfachauswahl getroffen
        ' werden kann
        ' *******
        .ColumnCount = intColums
        .ColumnHeads = True
        .RowSource = rngSource.Address
    End With
    Set rngSource = Nothing
    ListBox1.Tag = ""
End Sub

Die meisten sehen Deine Datei nicht.

GrußformelHomepage


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: ray
Geschrieben am: 13.01.2010 11:35:03

Danke Hajo, aber ich bin als Anfänger nicht klug genug, um Deinen code bei mir einzubauen.

und was Du damit ''Die meisten sehen Deine Datei nicht.'' meinst, weiß ich auch nicht.

Trotzdem Danke.


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: Hajo_Zi
Geschrieben am: 13.01.2010 11:47:32

Hallo Ray,

ich hätte den Code 1 zu 1 übernommen und nur den Namen der Listbox angepastr.
Ich lehne es ab über das Internet auf fremde Rechner zu schauen.


Gruß Hajo


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: ray
Geschrieben am: 13.01.2010 11:53:03


ich hätte den Code 1 zu 1 übernommen und nur den Namen der Listbox angepastr.
Und wie kommt der Code dann an die Quellenangabe (Welche Datei, wo)

Ich lehne es ab über das Internet auf fremde Rechner zu schauen.
Ich weiß schon wieder nicht, was Du damit meinst....


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: Hajo_Zi
Geschrieben am: 13.01.2010 11:58:09

Hallo ray,

ich bin davon ausgegangen das die Datei auf Deine Rechner liegt. Das ist wohl nicht so, dann teile die Adresse mitr wo die Datei liegt.
Der code geht von der aktuelle Tbelle aus, falls andere Datei muß Datei und Tabelle nachgeschrieben werden im Code.

Gruß Hajo


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: ray
Geschrieben am: 13.01.2010 12:08:13

Danke Hajo,

ich probiere jetzt schon 2 Stunden herum und komme nicht voran...

Die Quelle: Set wbk = Workbooks.Open("F:\daten\VeListe.xls")

Dieser Code funzt mit Einschränkung:

Private Sub UserForm_Initialize()

'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
   Dim wbk As Workbook
   Dim wks As Worksheet
   Application.ScreenUpdating = False
       
   Set wbk = Workbooks.Open("F:\daten\VeListe.xls")

   'Application.ScreenUpdating = False
   
           Set wks = wbk.Sheets(3)
            wks.Select
                      
            With ListBox1
               .List = Range("A1").CurrentRegion.Value
               If .ListCount > 0 Then .ListIndex = 0
            'MsgBox Range("A1").CurrentRegion.Address
            End With
         
    wbk.Close SAVECHANGES:=False
            
   Set wbk = Nothing
   Set wks = Nothing
   
'VeListe öffnen, Daten in Listbox einlesen, VeListe close START

Sheets("leer").Select
Application.ScreenUpdating = True
End Sub
Die Einschränkung ist, dass nur 20 Spalten angezeigt werden, obwohl es 30 sind und columcount auf 30 eingestellt ist.
Ich hatte die Idee, ob es daran liegt, dass zwischendurch leere Spalten sind, aber dass kann nicht sein, da z. B. Spalte 18 leer ist aber mir Spalte 19 wieder angezeigt wird.
Kann ich im obigen Code nicht einfach (wie?) sagen, nimmt Bereich von A1:Z620 ?

Danke für Deine Zeit und Grüße in die Heimat. In der Demminer Gegend war ja SchneeUnter...

Gruß RAy


  

Betrifft: Haken vergessen... von: ray
Geschrieben am: 13.01.2010 12:10:00

h


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: Hajo_Zi
Geschrieben am: 13.01.2010 12:11:17

Hallo Ray,

was mir auffällt das set ist auf eine Datei und keine Tabelle.

Gruß Hajo


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: ray
Geschrieben am: 13.01.2010 12:21:20

ja, aber weiter unten steht

Set wks = wbk.Sheets(3)
wks.Select


  

Betrifft: AW: Wieviel spalten in einer Listbox? von: Hajo_Zi
Geschrieben am: 13.01.2010 12:32:25

Hallo Ray,

auf select kann verzichte werden.
Hinweise zu select usw.
bei auslkesen der Daten mußt Du nur wks. davor schreiben, das müßte dann gehen.

Gruß Hajo


  

Betrifft: Gelöst. Vielen Dank Hajo. von: ray
Geschrieben am: 13.01.2010 12:34:27

closed


  

Betrifft: so klappt das von: Rudi Maintaire
Geschrieben am: 13.01.2010 12:31:51

Hallo,

Private Sub UserForm_Initialize()
  'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
  Dim wbk As Workbook
  Dim wks As Worksheet
  Dim arr
  Application.ScreenUpdating = False
  Set wbk = Workbooks.Open("F:\daten\VeListe.xls")
  Set wks = wbk.Sheets(2)
  
  Application.ScreenUpdating = False
  
  arr = wks.Range("A1").CurrentRegion
  With ListBox1
    .ColumnCount = UBound(arr, 2)
    .List = arr
    If .ListCount > 0 Then .ListIndex = 0
  End With
  
  wbk.Close SAVECHANGES:=False
  
  Set wbk = Nothing
  Set wks = Nothing
  
  'VeListe öffnen, Daten in Listbox einlesen, VeListe close START
  
  Sheets("leer").Select
  Application.ScreenUpdating = True
End Sub

Gruß
Rudi


  

Betrifft: Nur @Rudi von: ray
Geschrieben am: 13.01.2010 12:36:09

Hi Rudi,

worin liegt der Vorteil zu meinem kürzerem code?

Gruß Ray


  

Betrifft: nirgends von: Rudi Maintaire
Geschrieben am: 13.01.2010 12:44:34

Hallo,
ich machs immer über ein Array.
Deine Variante geht bei mir (XL10) aber auch. Hab gerade 256 Spalten in der LB erzeugt.

  With ListBox1
    .ColumnCount = wks.Range("A1").CurrentRegion.Columns.Count
    .List = wks.Range("A1").CurrentRegion.Value
    If .ListCount > 0 Then .ListIndex = 0
  End With
Gruß
Rudi


  

Betrifft: Danke Rudi mGruß oT von: ray
Geschrieben am: 13.01.2010 12:55:15

gruß


Beiträge aus den Excel-Beispielen zum Thema "Wieviel spalten in einer Listbox?"