mreske
Goto Top

Laufzeitfehler: Columnwidths konnte nicht gesetzt werden. Nicht näher bezeichneter Fehler

Guten Abend zusammen,

ich habe eine Listbox in der ich die Spaltenbreiten mit VBA definiere.

Beim ersten Klick funktioniert das Makro einwandfrei.
Wenn ich ein weiteres Mal darauf klicke, kommt diese Meldung: "Columnwidhs konnte nicht gesetzt werden. Nicht näher bezeichneter Fehler."
Hat jemand eine Idee, woran das liegen kann?

Private Sub CommandButton1_Click()
Me.lbx_SuKontHeader.ColumnWidths = "30,00Pt; 100,5Pt; 100,00Pt; 100,00Pt; 60,00Pt; 50,00Pt; 50,00Pt"  
End Sub

Danke

Content-ID: 1875753044

Url: https://administrator.de/contentid/1875753044

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

colinardo
colinardo 10.02.2022 aktualisiert um 10:31:50 Uhr
Goto Top
Servus @mreske,
leider kann ich das Geschilderte im Test nicht nachstellen.

Ein paar Fragen um den Fehler besser eingrenzen zu können:

  • Um welche Office Anwendung/Version handelt es sich hier?
  • Was passiert sonst noch in der Listbox zwischen den Aufrufen des Codes?
  • Wie viel Daten muss die Listbox darstellen?
  • Ändert sich die Anzahl der Spalten der Listbox zwischen den Aufrufen?
  • Wurde die Datei vor den Versuchen mal abgespeichert?
  • Gibt es irgendwelche Add-Ons die nicht im Standardlieferumfang von Office enthalten sind?
  • Werden benutzerdefinierte ActiveX-Controls auf der Form verwendet?
  • Gibt es weitere Event-Handler die auf Änderungen der Listbox reagieren?
  • Woher bezieht die Listbox ihren Inhalt, über die .List Property, über die .RowSource Property oder über die .AddItem Methode?

Wenn du die Mappe anonymisiert weitergeben kannst, kannst du mich auch gerne per PN kontaktieren dann schaue ich mir das File mal an.

Grüße Uwe
mreske
mreske 10.02.2022 um 14:05:09 Uhr
Goto Top
Hallo Uwe,

Um welche Office Anwendung/Version handelt es sich hier? -> 2010
Was passiert sonst noch in der Listbox zwischen den Aufrufen des Codes? -> aktuell nur die Spaltenbreiten sonst nichts
Wie viel Daten muss die Listbox darstellen? 5 -> Spalten, ca 10 Zeilen
Ändert sich die Anzahl der Spalten der Listbox zwischen den Aufrufen? -> Nein
Wurde die Datei vor den Versuchen mal abgespeichert? -> Ja
Gibt es irgendwelche Add-Ons die nicht im Standardlieferumfang von Office enthalten sind? -> Nein
Werden benutzerdefinierte ActiveX-Controls auf der Form verwendet? -> Nein
Gibt es weitere Event-Handler die auf Änderungen der Listbox reagieren? -> Nein
Woher bezieht die Listbox ihren Inhalt, über die .List Property, über die .RowSource Property oder über die .AddItem Methode? -> . RowSource

Ich werde jetzt die Spaltenbreite direkt im Eingenschaftsfenster der Listbox festlegen. Ist zwar nicht, was ich wollte, tut aber zur Not auch erst mal.

Trotzdem danke
mreske
mreske 10.02.2022 aktualisiert um 15:19:20 Uhr
Goto Top
Hallo nochmal,

kurz zur Erklärung:
Ich fülle eine ListBox (lbx_SEKont) mit Daten eines bestimmten Suchbegriffs.

Da man ja in der lbx_SEKont die Columnheads ja nicht wie in einer Excel-Tablelle einfrieren kann,
habe ich für die Überschriften eine separate Listbox (lbx_SEKontHeader) direkt darüber gelegt.

Damit wollte ich eigentlich nur erreichen, dass die Überschriften auf der Quelltabelle
a.) immer angezeigt werden
b.) immer die gleichen breiten haben, wie die Listbox mit den Ergebnissen
c.) das ganze variabel halten, falls ich mal die Spaltenbreite in der Ergebnis-Listbox ändere, ich diese per VBA gleich mit ändere.

Hier der Code, den ich nach dem Befüllen der Listbox mit den Ergebnissen (lbx_SEKont) laufen lasse:
Sub SpaltenUeberschListbox1()
Me.lbx_SEKont.ColumnWidths = "      30,00Pt; 100,5Pt; 100,00Pt; 100,00Pt; 60,00Pt; 50,00Pt; 50,00Pt"  
Me.lbx_SuKontHeader.ColumnWidths = "30,00Pt; 100,5Pt; 100,00Pt; 100,00Pt; 60,00Pt; 50,00Pt; 50,00Pt"  
Me.lbx_SuKontHeader.RowSource = Workbooks("tbl_Kontakte.xlsx").Sheets("Kontakte").Range("A1:S1").Address  
End Sub

header