Anzeige
Archiv - Navigation
704to708
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
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten variabler Länge untereinander kopieren

Spalten variabler Länge untereinander kopieren
12.12.2005 11:09:48
Thias
Hallo Forumgemeinde,
ich habe ein copy-Problem, welches ich auch durch die Recherche nicht lösen konnte.
Ich habe mehrere Spalten unterschiedlicher Länge (z.B. C11:C220, E11:E330, G11:G500, I11:I132), die ich gerne per VBA Makro untereinander in eine Spalte eines neuen Tabllenblatts kopieren möchte, z.B. ab B11 in Tabelle2.
Das Problem hierbei ist, dass die Spaltenlänge der Rohdaten jedesmal variiert, also Spalte C z.B. auch mal bis 300 gehen kann, oder Spalte E z.B. bis 350, etc.
Zum besseren Verständniss:
Rohdaten in Tabelle1:
C11 | E11 | G11
C12 | E12 | G12
C13 | E13 | G13
...
C100 | E122 | G222
Kopierte Daten in einer Spalte in Tabelle 2:
Spalte B, ab Zeile 11
---------------------
B11 Daten C11
B12 Daten C12
.
.
.
B111 Daten C100
B112 Daten E11
B113 Daten E12
.
.
.
B222 Daten E122
B223 Daten G11
B224 Daten G12
.
.
.
etc.
Ob mir einer der anwesenden Experten helfen kann?
Gruß Thias

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten variabler Länge untereinander kopieren
12.12.2005 11:28:28
ede
hallo thias,
anbei mal eine lösung über eine formel. für deine bereiche natürlich selber anpassen.

Die Datei https://www.herber.de/bbs/user/29137.xls wurde aus Datenschutzgründen gelöscht

gruss
AW: Spalten variabler Länge untereinander kopieren
12.12.2005 12:07:08
Thias
Hallo Ede,
so leid mir es tut - leider funktioniert das nicht so recht bei mir!
Schon 4 Zeilen vor der korrekten letzten Zeile wird ein ungültiger Zellbezug in der Zielspalte angezeigt. Vielleicht, weil bei mir jede Spalte bei Zeile 11 beginnt. Dies habe ich zwar versucht zu berücksichtigen, in dem ich statt:
=WENN(ZEILE(Tabelle1!A1)<=ANZAHL2(Tabelle1!A:A);Tabelle1!A1;INDIREKT(("Tabelle1!B"&(ZEILE(C1)-ANZAHL2(Tabelle1!A:A)))))
geschrieben habe:
=WENN(ZEILE(Tabelle1!A11)<=ANZAHL2(Tabelle1!A:A);Tabelle1!A11;INDIREKT(("Tabelle1!B11"&(ZEILE(C1)-ANZAHL2(Tabelle1!A:A)))))
Allerdings scheint das ja nicht korrekt zu sein.
Ausserdem - was ist, wenn ich mehr als 2 Spalten untereinander bekommen will? Dann wird diese Verknüpfung derart unübersichtlich, dass ich nicht mehr durchsteige!
Ich wäre also für weitere Lösungsvorschläge dankbar!
Anzeige
AW: Spalten variabler Länge untereinander kopieren
12.12.2005 13:13:41
Thias
Hallo Ede,
habe meine Formel entsprechend angepasst. Der fehlende Bezug ist nun zwar verschwunden, allerdings tauchen dafür aufeinmal ein paar Nullen auf zwischen den aneinandergrenzenden Spalten, die eigentlich nicht da sein dürften!
Um nicht aneinander vorbeizureden, habe ich meine Rohdaten hier mal hochgeladen:
https://www.herber.de/bbs/user/29141.xls
Ich hätte nun also gerne die Werte in den Spalten C, E, G, I von Tabelle1 (jeweils ab Zeile 11 bis zum jeweiligen individuellen Ende) kopiert nach Spalte B (ab Zeile 11) in Tabelle2. Und das nahtlos aneinander...
Gruß Thias
Anzeige
als vba-procedur
12.12.2005 12:56:34
ede
hallo,
hiermit kannst du es mit vba lösen!
rückmeldung wäre super.
ede

Sub test()
Dim nZeile As Integer
Dim vSpalte As Integer
Dim vZeile As Integer
Dim nSpalte As Integer
Dim vSheet As String
Dim nSheet As String
vSheet = "Tabelle1" ' quellTabellenBlatt
nSheet = "Tabelle2" 'ZielTabellenBlatt
nZeile = 11 'nach Zeile
nSpalte = 2 'nach Spalte
'Spalte C
vSpalte = 3
For vZeile = 11 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
Sheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
'Spalte E
vSpalte = 5
For vZeile = 11 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
Sheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
'Spalte G
vSpalte = 7
For vZeile = 11 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
Sheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
End Sub

Anzeige
AW: als vba-procedur
12.12.2005 13:23:52
Thias
Hi Ede,
Sorry - Du warst zu schnell. Mit dem VBA Code funkioniert es wunderbar! Sehr gut!
Ich bedanke mich recht herzlich für die ausdauernde Hilfestellung!
Gruß Thias
PS: Das nächste Problem ist sicher nicht weit! ;-)
bitte
12.12.2005 13:26:03
ede
noch erweitern um Spalte I
'Spalte I
vSpalte = 9
For vZeile = 11 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
Sheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
AW: bitte
12.12.2005 13:45:41
Thias
Ööhhm - also das hab' ich dann doch noch alleine hinbekommen! *g*
Trotzdem nochmals vielen Dank! VBA ist wahrscheinlich nicht sooo schwer, wenn man die Befehle kennt. Ich habe mich schon ein wenig mit JAVA beschäftigt, das ja auch objektorientiert ist. Von daher kann ich mir zwar einiges erklären wenn ich eine Lösung vor mir habe, aber alleine darauf zu kommen, ist meist dann doch zu viel für mich!
Meine Nächste Frage stelle ich übrigens gleich online - betrifft Diagrammerstellung bei variablen Spaltenlängen. Baut quasi auf das vorherige Problem auf.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige