Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ListBox Typenkonflikt

ListBox Typenkonflikt
11.02.2014 10:55:45
Gregor
Hallo
Jetzt habe ich plötzlich die Fehlermeldung
Eigenschaft ColumnWidths konnte nicht gesetzt werden, Typenkonflikt.
beim Code
With Me.ListBox1
.Clear
.ColumnCount = 3 + MaxWert
.ColumnWidths = ("2,4cm;8cm;2cm;1,5cm;6cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm;1,5cm;5cm")
.Font.Size = 10
End With
Me.ListBox1.List = Worksheets(Muster).Range(Cells(3, 1), Cells(Cells(65536, 1).End(xlUp).Row, 3 + MaxWert)).Value
Woran kann das liegen?
Danke und Gruss
Gregor

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox Typenkonflikt
11.02.2014 11:36:50
Rudi
Hallo,
kann keinen Fehler feststellen.
Gruß
Rudi

AW: ListBox Typenkonflikt
11.02.2014 11:46:00
Gregor
Hallo Rudi
Komisch. Ich versuche mal alles zu schliessen und neu zu starten.
Danke und Gruss
Gregor

AW: ListBox Typenkonflikt
11.02.2014 13:28:25
EtoPHG
Hallo Gregor,
Ersetze alle , durch . im String mit den Längenangaben. Also z.B. statt 2,4cm durch 2.4cm
Gruess Hansueli
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit dem Typenkonflikt in ListBox-ColumnWidths


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Wähle das richtige Arbeitsblatt: Stelle sicher, dass Du das Arbeitsblatt ausgewählt hast, das die ListBox enthält.

  3. Füge den folgenden Code ein:

    With Me.ListBox1
       .Clear
       .ColumnCount = 3 + MaxWert
       .ColumnWidths = "2.4cm;8cm;2cm;1.5cm;6cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm"
       .Font.Size = 10
    End With

    Achte darauf, dass Du die Kommas in den Längenangaben durch Punkte ersetzt, um den Typenkonflikt zu vermeiden.

  4. Fülle die ListBox: Stelle sicher, dass Du die ListBox richtig mit Daten füllst:

    Me.ListBox1.List = Worksheets("Muster").Range(Cells(3, 1), Cells(Cells(65536, 1).End(xlUp).Row, 3 + MaxWert)).Value

Häufige Fehler und Lösungen

  • Typenkonflikt bei ColumnWidths: Dieser Fehler tritt oft auf, wenn die Längenangaben nicht im richtigen Format vorliegen. Stelle sicher, dass Du alle Kommas in Punkte umwandelst.
  • Falsche Anzahl an ColumnWidths: Wenn Du mehr Spalten in der ListBox hast als Längenangaben in ColumnWidths, bekommst Du ebenfalls einen Fehler. Achte darauf, dass die Anzahl der Werte übereinstimmt.

Alternative Methoden

Falls Du eine andere Methode zur Festlegung der ColumnWidths verwenden möchtest, kannst Du auch ein Array nutzen:

Dim widths() As String
widths = Split("2.4cm;8cm;2cm;1.5cm;6cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm;5cm;1.5cm", ";")
Me.ListBox1.ColumnWidths = Join(widths, ";")

Diese Methode kann die Lesbarkeit erhöhen und Fehler beim Einfügen von Werten vermeiden.


Praktische Beispiele

Ein Beispiel für den Einsatz von ColumnWidths in einer ListBox könnte so aussehen:

Sub BefuelleListBox()
   With Me.ListBox1
       .Clear
       .ColumnCount = 3
       .ColumnWidths = "2.5cm;5cm;3cm"
       .AddItem "Eintrag 1;Wert 1;Beschreibung 1"
       .AddItem "Eintrag 2;Wert 2;Beschreibung 2"
   End With
End Sub

Hier wird eine ListBox mit drei Spalten gefüllt, wobei die Breiten genau definiert sind.


Tipps für Profis

  • Nutze die Option Explicit-Direktive am Anfang Deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Tippfehler und Typenkonflikte zu vermeiden.
  • Teste Deinen Code regelmäßig, während Du ihn schreibst, um frühzeitig Fehler zu erkennen.
  • Verwende Kommentare in Deinem Code, um die Funktionsweise zu erklären, insbesondere wenn Du komplexe Logik verwendest.

FAQ: Häufige Fragen

1. Warum erhalte ich einen Typenkonflikt bei ColumnWidths?
Der Typenkonflikt kann auftreten, wenn die Längenangaben nicht im richtigen Format sind. Stelle sicher, dass Du die Kommas in Punkte umwandelst.

2. Wie kann ich die Breite der Spalten in einer ListBox ändern?
Verwende die Eigenschaft ColumnWidths in Deinem ListBox-Code und stelle sicher, dass die Anzahl der Werte mit der Anzahl der Spalten übereinstimmt.

3. Was passiert, wenn ich mehr Spalten als Werte in ColumnWidths angebe?
In diesem Fall wirst Du einen Fehler erhalten. Achte darauf, dass die Anzahl der Längenangaben Deiner Spaltenanzahl entspricht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige