Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: aus Union-Range einzelne Werte auslesen

aus Union-Range einzelne Werte auslesen
31.10.2014 12:47:21
Peter
Hallo Excel Experten,
ich habe ein Tabellenblatt mit 53 Spalten und x Zeilen.
Aus diesem Tabellenblatt sollen nach mehreren (6) Kriterien Zeilen ausgewählt werden.
Das kann man ja eigentlich gut mit Union machen und hat dann einen Range der benötigten Zeilen.
Für diese gefundenen Zeilen soll ein Extrakt aus 6 Spalten erzeugt werden.
Kann man aus dem Union-Range wieder einzelne Zeilen auslesen, und wenn ja, wie.
Oder ist es besser, die Zeilen gleich in ein Array zu speichern, das man dann ganz bequem auslesen kann.
Für sachdienliche Hinweise bereits vielen Dank im Voraus.
Gruß Peter

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: aus Union-Range einzelne Werte auslesen
31.10.2014 12:59:42
Daniel
Hi
wenn du mit Union die Zeilen zusammengestellt hast, kannst du dann mit Intersect aus diesen zeilen Spalten ausschneiden:
dim rngZeilen as Range
dim rngSpalten as Range
dim rngMix as range
set rngZeilen = Union(Rows(2), Rows(4), Range("6:8"), Rows(10))
Set rngSpalten = Union(Columns(3), Columns(5), Range("M:P"))
Set rngMix = Intersect(rngZeilen, rngSpalten)

Gruß Daniel

Anzeige
AW: aus Union-Range einzelne Werte auslesen
31.10.2014 13:11:00
Rudi
Hallo,
einen derart unzusammenhängenden Bereich kannst du aber nicht einfach auslesen.
z.B. gibt Debug.Print rngMix.Cells(3,2) mitnichten den Wert aus E6 wieder, sondern aus D4, da rngMix in C2 beginnt.
Ich würde ein Array nehmen.
Gruß
Rudi

AW: aus Union-Range einzelne Werte auslesen
31.10.2014 13:14:43
Peter
Hallo Daniel, hallo Rudi,
danke für Eure Tipps.
Ich galebe es ist besser, gleich eine Array zur Aufnahmen der infrage kommenden Zeilen zu verwenden.
Gruß Peter

Anzeige
AW: aus Union-Range einzelne Werte auslesen
31.10.2014 13:19:09
fcs
Hallo Peter,
ich würde die Auswertung komplett über Arrays machen.
Gruß
Franz
Code-Beispiel
Sub Auswertung()
Dim wksData As Worksheet
Dim arrData, arrErgebnis()
Dim Zeile_L As Long, Zeile_D As Long, Zeile_E As Long
Dim bolTreffer As Boolean, intTreffer As Integer
Set wksData = ActiveSheet
With wksData
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
arrData = .Range(.Cells(2, 1), .Cells(Zeile_L, 54))
End With
intTreffer = 0
'Treffer-Zeilen markieren
For Zeile_D = LBound(arrData, 1) To UBound(arrData, 1)
bolTreffer = True
If Kriterium1 = True Then
If Kriterium2 = True Then
If Kriterium3 = True Then
If Kriterium4 = True Then
If Kriterium5 = True Then
If Kriterium6 = True Then
intTreffer = intTreffer + 1
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
arrData(Zeile_D, 54) = bolTreffer
Next
'Trefferzeilen auslesen
If intTreffer > 0 Then
ReDim arrErgebnis(1 To intTreffer, 1 To 6)
Zeile_E = 0
For Zeile_D = LBound(arrData, 1) To UBound(arrData, 1)
If arrData(Zeile_D, 54) = True Then
Zeile_E = Zeile_E + 1
arrErgebnis(Zeile_E, 1) = arrData(Zeile_D, 1)
arrErgebnis(Zeile_E, 2) = arrData(Zeile_D, 2)
arrErgebnis(Zeile_E, 3) = arrData(Zeile_D, 7)
arrErgebnis(Zeile_E, 4) = arrData(Zeile_D, 12)
arrErgebnis(Zeile_E, 5) = arrData(Zeile_D, 22)
arrErgebnis(Zeile_E, 6) = arrData(Zeile_D, 34)
End If
Next
End If
Erase arrData
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige