Anzeige
Archiv - Navigation
1524to1528
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 einlesen von Tab1 auf Tab2 mit ?Array?

Daten einlesen von Tab1 auf Tab2 mit ?Array?
29.11.2016 16:46:10
Tab1
Hallo zusammen,
habe im Anhang eine Mappe angehängt. Darin sind 2 Tabellen enthalten, eine Tabelle "Quelle" mit den Ausgangsdaten und eine Tabelle "Zieldarstellung" mit der gewünschten Darstellung der Daten.
Zu Tabelle "Quelle": Es gibt mehrere solcher Quelltabellen, die nach dem Einlesen der Daten auf das Sheet "Zieldarstellung" gelöscht werden, die nach und nach dann an die schon eingelesenen Daten angeheftet werden.
Die Beschreibung in Spalte D gehört so lange zu den Datensätzen aus Spalte A, B, C bis eine neue Beschreibung in Spalte D vorkommt. Zelle D2 gehört quasi zu den Datenzeilen 2-4 usw...
Zu Tabelle "Zieldarstellung": Die Daten müssten nun so wie abgebildet dargestellt werden. In den Spalten sollten auch keine Duplikate vorkommen.
Die Darstellung der Datensätze in dieser Form ist leider Vorgabe. Die Umsetzung solllte vllt. mit einem ?Array? stattfinden, nur fehlt mir da leider grad der Durchblick, wie ich mein Array aufbauen sollte.
Freue mich über Lösungsvorschläge.
Grüße Chris
https://www.herber.de/bbs/user/109800.xlsx

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten einlesen von Tab1 auf Tab2 mit ?Array?
29.11.2016 17:32:47
Tab1
Hi
als Arraylösung so:
Sub test()
Dim arr1, arr2
Dim z1, z2
Dim s As Long
With Sheets("Quelle").Cells(1, 1)
.CurrentRegion.RemoveDuplicates Array(1, 2, 3)
arr1 = .CurrentRegion.Value
End With
ReDim arr2(1 To UBound(arr1, 1), 1 To UBound(arr1, 2))
z2 = 0
For z1 = 1 To UBound(arr1, 1)
If arr1(z1, 4) = "" Then
For s = 1 To UBound(arr1, 2) - 1
arr2(z2, s) = arr2(z2, s) & vbLf & arr1(z1, s)
Next s
Else
z2 = z2 + 1
For s = 1 To UBound(arr1, 2)
arr2(z2, s) = arr1(z1, s)
Next s
End If
Next z1
Sheets("Zieldarstellung").Cells(1, 1).Resize(UBound(arr2, 1), UBound(arr2, 2)).Value = arr2
End Sub
das Entfernen der Duplikate mache ich allerdings schon in der Quelle, weils dafür eine entsprechende Excelfunktion gibt, die ich dann nur antriggern muss.
Gruß Daniel
Anzeige
AW: Daten einlesen von Tab1 auf Tab2 mit ?Array?
30.11.2016 15:16:12
Tab1
Hallo Daniel,
erstmal vielen Dank für dein Array. Das funktioniert auch soweit in Bezug auf meine Beispielmappe (Einzig die Duplikate werden nicht zu 100% gefiltert, da sich dein Bereich auf die Spalten A-C bezieht und da nicht zu 100% alles entfernt wird.
Jedoch hab ich gemerkt, dass ich meine Beispielmappe zu vereinfacht dargestellt habe (im Vergleich zum Original).
Ich habe nochmal eine neue Beispielmappe angehängt. Und zwar können auch mehrere Regeln in Spalte D vorkommen, die dann eben auch für die weiteren Datensätze gelten, bis neue Regeln in Spalte D auftauchen.
Die Werte aus den Spalten A-C lasse ich solange in Schriftfarbe weiß weiterschreiben, bis ein neuer Datensatz beginnt (das ich filtern kann).
Vllt. hast du/irgendjemand nochmal eine Idee.
Schon mal vielen Dank.
Grüße Christoph
https://www.herber.de/bbs/user/109822.xlsx
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige