Clever-Excel-Forum

Normale Version: 2-Dimensionales Array mit Abhängigkeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich habe ein kleines VBA Problem, ggf. hat hier jemand eine einfache Lösung.
Ich habe in einer Tabelle mehrere Spalten von denen ich 2 Spalten auswerten möchte. Einmal die Spalte Gebäude-Nr und einmal die Spalte Raum-Nr. Ein Gebäude oder ein Raum kann in der Tabelle öfters vorkommen. Es können auch Nummern übersprungen bzw. ausgelassen werden. Zudem ist die Liste nicht sortiert.
Also in dieser Form:

Spalte U             Spalte V       Spalte W
Gebäude-Nr.     Raum-Nr.      Werte
      1                    1                   ..
      2                    1                   ..
      1                    2                   ..
      1                    2                   ..    
      1                    3                   ..
      2                    3                   ..

Ich möchte die Gebäude bzw. Räume in ein Array schreiben, welches nach Gebäuden und Räumen aufsteigend sortiert ist, um die Räume eines Gebäudes später in einer zweiten Tabelle auszugeben. Jeder Raum eines Gebäudes darf darin nur einmal vorkommen. Das Ergebnis sollte also so aussehen:

Tabelle 2:

Zeile 1 | Gebäude-Nr  | 1  |  1  |  1  |  2  |  2  |
Zeile 2 | Raum-Nr.      |  1 |  2  |  3  |  1  |  3  |

Hat jemand eine Lösung ?

Danke vorab
Benütze eine pivotTabelle.

schau mal: https://www.helpmij.nl/forum/showthread....draaitabel
Hi,

geht leider nicht, ist alles schon sehr weit vorangeschritten. Es muss eine VBA Lösung sein.
Das ist eine VBA Lösung.
Hallo,

versuche es mal in dieser Art:


Code:
Sub test()
Dim varDatArr() As Variant
varDatArr = Tabelle1.Range("A2:B7").Value
Tabelle1.Range("D2:I3") = Application.Transpose(varDatArr)

End Sub
Hallo zusammen,

danke ersmal. Bekomme ich so aber nicht hin. Zu wenig Erfahrung damit Excel Formeln umzuwandeln.

@Hallo Klaus-Dieter,

dass geht so leider nicht. Mit dem code wird die Liste zwar waagerecht dargestellt.

Ich muss die Daten aber in einem Array ablegen, um diese von dort aus einzeln abzurufen. Zudem müssen doppelte Einträge entfernt werden.
Hallo,

ich weiß nicht, was du unter einem Array verstehst, ich habe mit einem gearbeitet. Die anderen Anforderungen hatte ich so nicht verstanden.
Hallo,

sry, stimmt :), hatte etwas nicht verstanden. Hast Du noch ne Idee wie man den Code soweit ergänzen könnte, dass die Daten in dem Array vor der Ausgabe sortiert werden und die doppelten Einträge verschwinden ?

Gruß Mike
Das ist gerade schon dem Fall.
Hallo Mike,

warum muss das vor der Ausgabe geschehen? Steht auf dem Zielblatt denn schon was? Ansonsten würde ich es am Ziel ausgeben, sortieren und die Duplikate entfernen (alles per Makro). Eine weitere Variante wäre, die Daten temporär auf ein neues Blatt auszugeben, dort zu bearbeiten und dann am Ziel auszugeben (alles per Makro). Gerade wenn Du mit VBA nicht so firm bist, wäre das eine überschaubarer Ansatz, den Du sicher auch einfach nachvollziehen kannst - die Aktionen könntest Du aufzeichnen.