Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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

Daten aus Liste selektieren

Daten aus Liste selektieren
03.12.2013 20:46:29
Befipri
Hallo Zusammen,
ich habe folgendes Makro geschrieben, das funktioniert auch ist jedoch viel zu langsam.
Der Ausgangspunkt ist: Ich habe eine Tabelle, in der sind Daten für jeden Monat von Januar bis Dezember ab dem Jahr 2010 bis 2020. In einer anderen Tabelle möchte ich immer nur die Daten von einem Jahr z.B. 2012 angezeigt bekommen und dazu jeden Monat.
Sub Test()
Dim QuelleArr
Dim ZielArr(1 To 6)
Dim ZielDatum As Variant
Dim i, k, a As Long
a = 7
Set QuelleArr = Worksheets(2).Range("B5:H" & cells(rows.count,2))
Set Ziel = Worksheets(1).Range("C7:H18")
Wert = QuelleArr
ZielDatum = Worksheets(3).Cells(3, 2)
For i = 1 To UBound(Wert, 1) Step 1
If ZielDatum = QuelleArr(i, 2)
ZielArr(1) = QuelleArr(i, 2)
ZielArr(2) = QuelleArr(i, 3)
ZielArr(3) = QuelleArr(i, 4)
ZielArr(4) = QuelleArr(i, 4)
ZielArr(5) = QuelleArr(i, 5)
ZielArr(6) = QuelleArr(i, 6)
Worksheets(1).Cells(a, 3) = ZielArr(1)
Worksheets(1).Cells(a, 4) = ZielArr(2)
Worksheets(1).Cells(a, 5) = ZielArr(3)
Worksheets(1).Cells(a, 6) = ZielArr(4)
Worksheets(1).Cells(a, 7) = ZielArr(5)
Worksheets(1).Cells(a, 8) = ZielArr(6)
a = a + 1
End If
Next i
End Sub

Viele Dank schon mal!

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

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Liste selektieren
03.12.2013 21:18:10
Uduuh
Hallo,
teste mal:
Sub Test()
Dim QuelleArr
Dim ZielArr()
Dim ZielDatum As Variant
Dim i As Long, k As Long, n As Long
Set QuelleArr = Worksheets(2).Range("B5:H" & Cells(Rows.Count, 2).End(xlUp).Row)
ZielDatum = Worksheets(3).Cells(3, 2)
ReDim ZielArr(1 To 6, 1 To UBound(QuelleArr))
For i = 1 To UBound(QuelleArr, 1)
If QuelleArr(i, 2) = ZielDatum Then
n = n + 1
ZielArr(1, n) = QuelleArr(i, 2)
ZielArr(2, n) = QuelleArr(i, 3)
ZielArr(3, n) = QuelleArr(i, 4)
ZielArr(4, n) = QuelleArr(i, 4)
ZielArr(5, n) = QuelleArr(i, 5)
ZielArr(6, n) = QuelleArr(i, 6)
End If
Next i
If n > 0 Then
ReDim Preserve ZielArr(1 To 6, 1 To n)
ZielArr = WorksheetFunction.Transpose(ZielArr)
Worksheets(1).Cells(7, 3).Resize(n, 6) = ZielArr
Else
MsgBox "Nix gefunden"
End If
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: Daten aus Liste selektieren, Korrekturen
03.12.2013 21:33:33
Uduuh
Hallo,
so ist's besser:
Sub Test()
Dim QuelleArr
Dim ZielArr()
Dim ZielDatum As Date
Dim i As Long, n As Long
With Worksheets(2)
QuelleArr = .Range(.Cells(5, 2), .Cells(Rows.Count, 8).End(xlUp))
End With
ZielDatum = Worksheets(3).Cells(3, 2)
ReDim ZielArr(1 To 6, 1 To UBound(QuelleArr))
For i = 1 To UBound(QuelleArr, 1)
If QuelleArr(i, 2) = ZielDatum Then
n = n + 1
ZielArr(1, n) = QuelleArr(i, 1)
ZielArr(2, n) = QuelleArr(i, 2)
ZielArr(3, n) = QuelleArr(i, 3)
ZielArr(4, n) = QuelleArr(i, 4)
ZielArr(5, n) = QuelleArr(i, 5)
ZielArr(6, n) = QuelleArr(i, 6)
End If
Next i
If n > 0 Then
ReDim Preserve ZielArr(1 To 6, 1 To n)
ZielArr = WorksheetFunction.Transpose(ZielArr)
With Worksheets(1)
.Range(.Cells(7, 3), .Cells(Rows.Count, 8).End(xlUp)).ClearContents
.Cells(7, 3).Resize(n, 6) = ZielArr
End With
Else
MsgBox "Nix gefunden"
End If
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: Daten aus Liste selektieren
06.12.2013 13:28:14
Befipri
funktioniert wunderbar vielen Dank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige