Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range leerenzeilenfrei neu ordnen

Range leerenzeilenfrei neu ordnen
Johannes
Hallo xlGemeinde,
folgende Problemstellung:
Gegeben ist eine definierte Range, die mit Daten bestueckt ist. Es koennen auch "Leerzeilen" in dieser Range vorkommen. Ziel ist, die Range ueber VBA neu und leerzeilenfrei zu ordnen. Spezialfilter oder Zeilenloeschungen (EntireRow.Delete) kommen leider nicht in Frage.
Ausgangspunkt (links) - Ziel (rechts):
Userbild

Die Datei https://www.herber.de/bbs/user/67775.jpg wurde aus Datenschutzgründen gelöscht

Ich haette mich jetzt durch die Zeilen der Range iteriert, nichtleere Zeilen in ein Array gelesen - anschliessend die komplette Range geloescht und neu aufgebaut ... aber das erscheint mir etwas aufwaendig fuer die Kleinigkeit?!
Ueber geistige Anstoesse waere ich sehr dankbar! :-)
Gruesse und vielen Dank vorab,
Johannes

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
warum nicht einfach sortieren? o.T.
04.02.2010 19:24:22
Josef
Gruß Sepp

AW: warum nicht einfach sortieren? o.T.
04.02.2010 19:38:30
Johannes
Danke fuer die Antwort, Josef.
Tatsaechlich hab ich das Beispiel schlecht gewaehlt ... eine Sortierung wuerde ja bedeuten, dass ich alphabetisch die Reihenfolge aendere. Das will ich aber nicht!
Ich will weder die Reihenfolge aendern - noch Leerzeilen. :-)
Stellt euch einfach vor da wuerde nicht A - H stehen ... sondern zufaellige wirre Kombinationen.
Gruesse,
Johannes
AW: warum nicht einfach sortieren? o.T.
04.02.2010 20:00:18
Josef
Hallo Johannes,

ich würde es trotzdem per sortieren machen.
Probier mal.

Sub leereWeg()
  Dim rng As Range, rngT As Range
  
  Set rng = Range("A2:A15")
  
  Columns(rng.Column + rng.Columns.Count).EntireColumn.Insert
  
  Set rngT = rng.Resize(, rng.Columns.Count + 1)
  
  rngT.Columns(rng.Columns.Count + 1).FormulaR1C1 = "=IF(COUNTA(RC[-" & _
    rng.Columns.Count & "]:RC[-1])<1,"""",ROW())"
  rngT.Columns(rng.Columns.Count + 1) = rngT.Columns(rng.Columns.Count + 1).Value
  rngT.Sort key1:=rngT.Cells(1, rng.Columns.Count + 1), order1:=xlAscending, Header:=xlNo
  
  rngT.Columns(rng.Columns.Count + 1).EntireColumn.Delete
  
  Set rngT = Nothing
  Set rng = Nothing
End Sub


Gruß Sepp

Anzeige
AW: warum nicht einfach sortieren? o.T.
07.02.2010 17:24:11
Johannes
Hallo Josef,
sorry fuer die Verspaetung.
Wollte dennoch Feedback geben, dass deine Loesung optimal arbeitet.
Vielen Dank dafuer! :-)
Gruesse und einen schoenen Restsonntag,
Johannes

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige