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

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

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

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige