Mal ganz ehrlich. VBA Code wir dauf die spezielle Anwendung zugeschnitten und passt meist auch nur genau nur auf die eine Sache. Deshalb sind die Forderungen der Kollegen nach einer deutlicheren Beleuchtung der Tabellenumgebung verständlich. Wahrscheinlich hättest du schon eine passende Lösung. Aber du wolltest ja nicht.
Allgemein kann ich dir sagen wie das mit der Usedrange und deiner Schleife zu verstehen ist. Die Usedrange ist ein bisschen abstrackt. Wenn man seine Tabellengrenzen kennt oder nur teilweise dann, sollte man Usedrange nicht nutzen.
Du weist wo deine Daten anfangen. Das Ende holt man sich meist mit .end(xlup) Da fängt man aber mit der letztmöglichen Zelle an und sucht nach oben cells(rows.count, zudurchsuchendespalte).end(xlup)
end(xldown) könntest du benutzen, wenn du anders herum suchen möchtest. also eine Zelle z.b. [A1].end(xldown) landet bei der letzten gefüllten Zelle. Die nächste Zelle ist dann leer. Egal ob in der übernächsten Zelle dann noch weitere Daten kommen.
Ein Sonderfall könnten hier intelligente Tabelle bilden. Da geht diese end(xl**) auch mal direkt bis zum Tabellen ende, egal ob dazwischen was leer ist.
Bei all diesen Möglichkeiten muss man, um sicherzugehen, die Grenzfälle überprüfen. Leere Spalte, komplett volle Spalte, nur Spaltenüberschriften keine Daten.
|