Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1356to1360
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

Selection: Markierte Zeilen ermitteln

Selection: Markierte Zeilen ermitteln
21.04.2014 18:03:18
Martin
Hallo liebe Excelfreunde,
was ist der einfachste VBA-Lösungsweg um bei einer Zellenselection (teilweise mit mehreren Areas) jede Zeile einmal zu ermitteln? Hier mal ein Beispielmakro mit zwei Areas, die beide Zellen aus Zeile 8 und 9 beinhalten. Bei meinem Code werden die beiden Zeilen daher leider doppelt ermittelt:
Sub SelectedRows()
Dim rngArea As Range
Dim iRow As Integer
'Zellbereich auswählen (Überschneidung Zeile 8 und 9)
Range("B5:B9,C8:C17").Select
'Zeilen ermitteln
For Each rngArea In Selection.Areas
For iRow = 0 To rngArea.Rows.Count - 1
Debug.Print rngArea.Rows.Row + iRow
Next
Next
End Sub

Für Vorschläge bin ich wie immer sehr dankbar!
Viele Grüße
Martin

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

Betreff
Datum
Anwender
Anzeige
AW: Selection: Markierte Zeilen ermitteln
21.04.2014 19:06:46
Tino
Hallo,
einiges was mir einfällt, entweder die Zeilen in einem Array ablegen und abfragen ob schon vorhanden.
Oder wie hier, die Bereiche zu einem zusammenhängenden Bereich machen.
Sub SelectedRows()
Dim rngArea As Range, rngTmp As Range
Dim iRow As Integer
'Zellbereich auswählen (Überschneidung Zeile 8 und 9)
Range("B5:B9,C8:C17").Select
'Zeilen ermitteln
For Each rngArea In Selection.Areas
If rngTmp Is Nothing Then
Set rngTmp = rngArea.EntireRow
Else
Set rngTmp = Union(rngTmp, rngArea.EntireRow)
End If
Next
For Each rngArea In rngTmp.Areas
For iRow = 1 To rngArea.Rows.Count
Debug.Print rngArea.Rows(iRow).Row
Next iRow
Next
End Sub
Gruß Tino

Anzeige
Danke, das ist perfekt!
21.04.2014 19:31:23
Martin
Hallo Tino,
vielen Dank für deine Hilfe, so läuft das Makro perfekt. Ich hatte auch schon an ein Dictionary Object oder Array gedacht und war gespannt, ob es auch einfacher geht. Die Möglichkeit Areas mit Union zu verbinden war mir unbekannt, scheint aber der beste Lösungsweg zu sein.
Nochmals vielen Dank!
Viele Grüße
Martin

Scripting.Dictionary ...
21.04.2014 19:11:32
Matthias
Hallo
Schau mal in der Recherche nach Scripting.Dictionary
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige