Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - kombinierte Auflistung aus Matrix

VBA - kombinierte Auflistung aus Matrix
29.10.2015 16:37:33
Josef
Schönen guten Abend allerseits,
um mein Anliegen verständlicher zu machen habe ich eine Beispieldatei erstellt:
https://www.herber.de/bbs/user/101124.xlsx
Wir haben darin eine Quelldatei, welche eine Matrix enthält, die unser Buchhaltungssystem ausspuckt.
Senkrecht sind dort unsere Sachkonten zu sehen, Waagerecht unsere Kostenstellen. Diese Matrix enthält nun Beträge, wenn in einem Konto ein Wert unter einer bestimmten Kostenstelle gebucht wurde. Die Kostenstellen werden immer alphanumerisch ausgegeben, also zuerst die Nummer dann die Bezeichnung.
Auf dem Tabellenblatt "Ausgabe" seht ihr das Endergebnis: eine Auflistung aller gefundenen Beträge und dazu, in welcher Kombination von Konto und Kostenstelle sie vorgefallen sind. Bisher erledige ich das alles händisch, aber ihr könnt euch vorstellen dass das viel Arbeit ist.
Ist es möglich, die Matrix durch ein Makro durchsuchen zu lassen, und so automatisch eine solche Auflistung zu erstellen? Meine VBA-Kentnisse sind leider sehr begrenzt.
Ich hoffe mein Anliegen ist verständlich, ansonsten bin ich für Fragen offen.
Ich wünsch euch einen schönen Abend.
Gruß
Josef

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - kombinierte Auflistung aus Matrix
29.10.2015 17:57:43
ransi
Hallo Josef,
Teste mal dies:
Option Explicit

Sub machs()
    Dim arr As Variant
    Dim I As Integer
    Dim L As Long
    Dim objDic As Object
    arr = Sheets("Quelldaten").Range("A1").CurrentRegion
    Set objDic = CreateObject("scripting.Dictionary")
    For I = 2 To UBound(arr, 2)
        For L = 2 To UBound(arr)
            If arr(L, I) <> "" Then objDic(Left(arr(1, I), 6) & arr(L, 1)) = arr(L, I)
        Next
    Next
    With Sheets("ausgabe")
        .Range("A2").Resize(objDic.Count) = WorksheetFunction.Transpose(objDic.keys)
        .Range("B2").Resize(objDic.Count) = WorksheetFunction.Transpose(objDic.items)
    End With
End Sub


DAs gibt die selben Werte aus wie deine Beispieltabelle
ransi

Anzeige
AW: VBA - kombinierte Auflistung aus Matrix
30.10.2015 08:21:15
Josef
Guten Morgen,
funktioniert einwandfrei, ich bin baff. Ich habe das Dictionary object nie so wirklich kapiert. Ich bin begeistert was man damit machen kann.
Danke und Gruß

AW: VBA - kombinierte Auflistung aus Matrix
30.10.2015 08:47:53
Josef
Hallo nochmal,
ich weiß, das Thema hat sich im Grunde nun erledigt doch ich habe noch eine Verständnis-Frage:
Kann mir bitte jemand erklären, was folgende Zeile in ransis Skript (vielen Dank nochmal!) bewirkt?
Then objDic(Left(arr(1, I), 6) & arr(L, 1)) = arr(L, I)
Den Rest verstehe ich soweit.
Beste Grüße
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