Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

2-Dimensionales Array mit Abhängigkeit
#1
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
Antworten Top
#2
Benütze eine pivotTabelle.

schau mal: https://www.helpmij.nl/forum/showthread....draaitabel
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hi,

geht leider nicht, ist alles schon sehr weit vorangeschritten. Es muss eine VBA Lösung sein.
Antworten Top
#4
Das ist eine VBA Lösung.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
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
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
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.
Antworten Top
#7
Hallo,

ich weiß nicht, was du unter einem Array verstehst, ich habe mit einem gearbeitet. Die anderen Anforderungen hatte ich so nicht verstanden.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#8
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
Antworten Top
#9
Das ist gerade schon dem Fall.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste