Hallo zusammen,
mir ist heute hier und in anderen Threads noch etwas auf- und eingefallen:
Ich finde knackig kurzen Code auch schön. Zumindest zum Zeitpunkt des Erstellens desselben.
Man sollte aber auch die 'Nebenwirkungen' beachten ...
Wer versteht in ein paar Monaten noch auf einen Blick 'wild' ineinander verschachtelte kryptische Zeichensätze auf Anhieb ...
Wenn alles in eine Zeile geklatscht wurde, dann wird einem das Debuggen auch nicht gerade erleichtert.
Welcher Hilfesuchende versteht diese kurzen 'Dinger' ohne Erläuterung, so dass er sich diesen Code für sich zurechtbiegen kann.
Und noch einige weitere Dinge ...
Ich komme darauf, weil der schöne 'Knackige Code' von snb nur so lange funktioniert, wie man nichts anderes in Tabelle1 'anstellt'.
Z.Bsp. wenn man sich in diesem Sheet'Tabelle1' noch eine weitere Tabelle anlegt, dann ergibt untenstehender Code einen Fehler:
Code:
Tabelle1.UsedRange.Offset(1).Name = "snb"
ComboBox1.List = Filter([transpose(if(isblank(snb),"~",snb))], "~", 0)
Warum?
Weil derUsedRange einfach so wieder zugewiesen wird. Der falsche halt und dann bekommt man in der Zuweisung der Liste einen Fehler.
Wie kann man das Umgehen?
Da gibt es wieder einige Wege.
Der einfachste Weg wird sein, wenn man hier im Beispiel die erste Zeile auskommentiert und den Namen und dessen Range im Namensmanager festlegt.
Man könnte auch per VBA prüfen, ob der Name schon festgelegt wurde und falls nicht, diesen per VBA anlegen.
Dieser superkurze Vorschlag funktioniert also nur von 'Zwölfe bis Mittags'.
Unschön für den Hilfesuchenden.
Das ist nur eine allgemeine Kritik an uns Helfern und an niemand persönlich gerichtet.
Der eben angesprochene Fehler ist mir halt eben aufgefallen, weil die 'UsedRange' ohne genaue Definition zugewiesen wird und das immer wieder.
Schön kurz, aber auch schön blöd - zumindest wenn weiter in Tabelle1 gewerkelt wird.
Nicht falsch verstehen. Sind nur Gedanken, kein Angriff ... :)
Ich glaub, ich geh runter zu Frauchen. Vielleicht macht die was Gescheites. :D
Gruß Carsten