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

Bereich von einem Array zum anderen übertragen

Bereich von einem Array zum anderen übertragen
10.03.2017 20:10:59
einem
Hallo!
Ich möchte unter bestimmten Voraussetzungen eine bestimmte Zeile aus einem Array in ein anderes Array kopieren.
Geht das Auswählen nicht mit Range?
Ich dachte so:

ArrGoal(RowCounterGoal, ColumnCounterNewData) = ArrNewData(Range(cells(RowCounterNewData,1),cells(RowCounterNewData,ColumnCounterNewData))

Da soll die Zeile von der ersten Spalte bis zur letzten (ausgefüllten)Spalte übertragen werden.
Wie macht man das sonst?
Viele Grüsse
Kailash

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 20:23:53
einem
Hallo,
HAst du leerzeilen oder leerspalten in deiner Range?
Wenn nicht, dann ganz einfach so:
ArrGoal=range("a1").currentregion
ransi
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 20:32:29
einem
Hallo Ransi!
ich möchte nicht aus einer Tabelle das Array befüllen sondern aus einem anderen Array.
Und ja, es gibt auch da leere Zellen.
Ich lese zwei Tabellenblätter in zwei verschiedene Arrays ein. Dann vergleiche ich so zu sagen einen Primärschlüssel, oder eine ID (eigentlich sind es 5 Stück) der Datensätze zwischen beiden Arrays, wenn es die ID noch nicht gibt, möchte ich dass die Zeile in ein drittes Array kopiert wird.
Dieses Dritte Array ist "ArrGoal"
"ArrNewData" enthält die Daten, die in ArrGoal eingefügt werden sollen, wenn es die IDs noch nicht gibt.
Viele Grüsse
Kailash
Anzeige
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 20:36:37
einem
Verwende eine Dictionary
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 20:55:50
einem
Hallo,
Das hört sich sehr kryptisch an.
Hast du mal eine kleine Beispieltabelle ?
ransi
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 23:32:51
einem
Hallo Ransi!
Hab mal ne Datei angefertigt.
Das Makro darin kannst du aber nicht ausführen. Ist nur so zum gucken.
Wenn du sonst irgendwelche Tips hast wie ich das kürzer machen kann, kannst du das gerne mitteilen.
Funktioniert zwar halbwegs scheint mir aber etwas unprofessionell zu sein.
https://www.herber.de/bbs/user/112108.xlsm
Viele Grüsse
Kailash
AW: Bereich von einem Array zum anderen übertragen
11.03.2017 02:02:21
einem
Hallo noch mal!
Mir ist gerade aufgefallen dass mein Code (in der Datei) zum vergleichen der Tabellen ja völliger Unsinn ist, weil man ja nicht die Zeilen vergleichen kann, weil die können sich auf dem einem Tabellenblatt in einer anderen Zeile befinden als auf dem anderen Tabellenblatt.
Da weiss ich nun also auch keine Lösung. Das ist alles komplizierter als ich dachte.
Vielleicht könnte man in beiden Arrays eine Hilfsspalte einfügen in denen man den Inhalt der Primärschlüssel-zellen verbindet. Und dann diese beiden Hilfsspalten miteinander vergleichen.
Also "A1"&"C1"
Das sieht dann so aus (wegen dem Datum):
10Bürgés
42789,9877430556Maiert
42788,8076388889Singer
Und wenn diese Strings nicht in der anderen Tabelle vorkommen, dann die Zeilen in den Zielarray ArrGoal übertragen.
Wäre das ne Möglichkeit oder wie macht ihr Fachleute das?
Viele Grüsse
Kailash
Anzeige
AW: Bereich von einem Array zum anderen übertragen
11.03.2017 10:24:14
einem
Hallo,
Hier ist mal ein Schnellschuss.
Keine Fehlerroutinen, keine Kommentare. Einfach so hingeschrieben...
Schau mal ob das in die richtige Richtung geht.
https://www.herber.de/bbs/user/112111.xlsm
ransi
Boooh! Danke!
11.03.2017 12:34:15
Kailash
Hallo Ransi!
Schnellschuss?
Selber habe ich tagelang(kein Witz) an meinen Datenmüll herumgetüftelt. Und funktioniert nicht mal.
Dein Schnellschuss funktioniert ja sogar.
Da werde ich ein paar Wochen brauchen um da durchzusteigen. Werde mal in meinem Buch nachlesen und ein paar Tutorials von WiseOwl angucken. Danach werde ich wohl etwas besser verstehen.
Obwohl deine Lösung funktioniert kann ich sie so nicht übernehmen, weil es wichtig ist, dass nur die Spalten miteinander verglichen werden, die auf dem sheet Optionen stehen (im Beispiel müssten in diesem Fall A und C stehen, manchmal wird nur eine Spalte verglichen, manchmal bis zu 5 Spalten. Das soll eine sehr flexible Datei zum einfachen Importieren werden, die von allen Menschen benutzt werden kann, ohne dass sie programmieren müssen).
Deine Lösung scheint ja alle Spalten zu vergleichen.
Wenn ich Dictionarys gelernt habe, und deine Lösung verstanden habe, kann ich mich ja noch mal melden für den Fall dass ich das dann nicht selber hinbekomme.
Herzlichen Dank für Deine Mühe!
Kailash
Anzeige
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 22:36:19
einem
Hi
wenn du Daten von einenm Array in ein anderes Array übertragen willst, dann musst du per Schleife jeden WErt einzeln übertragen.
for x = 0 to y
arr2(z2, s2+x) = arr1(z1, s1+x)
Next

eine Methode, um einzelne Teile des Arrays als Block zu übertragen ähnlich wie bei Zellen, ist mir nicht bekannt.
Ist aber auch nicht schlimm.
Schleifen mit Arrays sind sehr schnell, manchmal sogar schneller als eine Einschritt-Funktion wenn diese vorhanden ist (z.B. Worksheetfunction.Transpose)
Gruß Daniel
AW: Bereich von einem Array zum anderen übertragen
10.03.2017 23:38:28
einem
Hallo Daniel!
Da hast du mir mal wieder ganz gut weiter geholfen. Werde ich mal probieren.
Danke schön!
Viele Grüsse
Kailash
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige