Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1548to1552
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

Daten in Spalten Blockweise Kopieren

Daten in Spalten Blockweise Kopieren
03.04.2017 14:27:18
Sandro
Hallo Zusammen
Ich habe folgende Ausgangslage:
7 Spalten (A-G), 6 davon sind lückenlos mit Daten gefüllt (A-F), ca. 1000 Zeilen lang. Spalte(G) hat in unterschiedlichen Abständen eine Variable Zahl (Die sogenannte Klassierungsnummer) drinstehen. Nun möchte ich diese Daten Blockweise in ein zweites Tabellenblatt kopieren. Ein Block besteht aus allen Daten der 7 Spalten (A-G), bis die nächste Klassierungsnummer in Spalte G kommt. Der nächste Block soll dann neben den ersten Block kopiert werden.
Beispiel:
Block 1 wird im Tabellenblatt 2 kopiert und füllt die Zellen A66 bis G66 Block 2 kommt rechts daneben und füllt die Zellen H120 bis N120 usw.
Kennt jemand dafür eine schlaue Lösung?
Vielen Dank & Gruss
Sandro

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wie sehen die Klassierungsnummern aus?..owT
03.04.2017 14:29:10
Max2

AW: Wie sehen die Klassierungsnummern aus?..owT
03.04.2017 14:31:05
Sandro
Die Klassierungsnummern sind immer 4-Stellige Zahlen ohne Punkt oder Komma.
Bsp:
4556
4887
4792
...
AW: Wie sehen die Klassierungsnummern aus?..owT
03.04.2017 14:32:44
Jonas
Hallo Sandro,
ich glaube ich habe schon eine Idee könntest du vllt ein Bild der Tabelle hochladen um das besser nachvollziehen zu können :) ?
Gruß Jonas
AW: Wie sehen die Klassierungsnummern aus?..owT
04.04.2017 07:57:47
Sandro
Hallo Jonas,
Das wäre ja super!
Hier die Beispiel-Datei:
https://www.herber.de/bbs/user/112608.xlsx
Mittlerweile hatte ich noch einen Verbesserungsvorschlag für die ursprüngliche Idee. Wenn du jedoch nur eine Lösung für das ursprüngliche Problem hast, hilft mir das auch schon weiter!
Die Daten der 7 Spalten Blockweise in ein zweites Tabellenblatt übernehmen. Jedoch nicht alle 7 Spalten. Nur die Daten der Spalten A bis C als Überschrift die Klassierungsnummer (G) und die Maschinennummer (F). Ein Block besteht also aus den Daten der 3 Spalten (A-C), bis die nächste Klassierungsnummer in Spalte G kommt mit der Überschrift G & F. Der nächste Block soll dann neben den ersten Block kopiert werden.
In der Beispieldatei habe ich die Blöcke zum besseren Verständnis unterschiedlich eingefärbt. Auf dem zweiten Tabellenblatt habe ich dargestellt, wie das Endergebnis aussehen sollte.
Gruss
Sandro
Anzeige
Vorschlag
03.04.2017 14:47:02
Max2
Hallo,
hier ein kleiner nicht weitreichend getesteter Code:

Sub a()
Dim ws As Worksheet, ws2 As Worksheet
Dim rng As Range, c As Range
Dim rngToCopy As Range
Dim lZeile As Long
Dim lspalte As Long
Dim latestPoint As Long
latestPoint = 2
Set ws = ThisWorkbook.Sheets(1)
Set ws2 = ThisWorkbook.Sheets(2)
With ws
lZeile = .Cells(.Rows.Count, 1).End(xlUp).Row 'Letzte zelle in Spalte A
Set rng = .Range(.Cells(3, 7), .Cells(lZeile, 7))
For Each c In rng
If c.Value  "" Then
Set rngToCopy = .Range(.Cells(latestPoint, 1), .Cells(c.Row, 7))
latestPoint = c.Row
rngToCopy.Copy
With ws2
lspalte = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1
.Range(.Cells(1, lspalte), .Cells(c.Row, lspalte + 6)).PasteSpecial Paste:= _
xlPasteValues
End With
End If
Next c
End With
End Sub

Anzeige
AW: Vorschlag
03.04.2017 15:03:59
Sandro
Hallo Max,
Dein Code macht fast das was ich möchte, das einzige was noch stört ist, dass er immer am Ende des Blocks die Klassierungsnummer des nächsten Blocks hinschreibt.
Hier die Datei zum veranschaulichen:
https://www.herber.de/bbs/user/112585.xlsm
Gruss Sandro
AW: Vorschlag
03.04.2017 16:04:13
Max2
Hallo, dann musst du einfach: "latestPoint = c.Row + 1" schreiben.
AW: Vorschlag
04.04.2017 07:52:30
Sandro
Hallo Max,
Mit latestPoint = c.Row + 1 funktioniert es auch nicht wunschgemäss...
Gruss
Sandro
Mein Fehler tut mir leid...
04.04.2017 08:56:26
Max2
Hallo,
tut mir leid, um die Nummer des letzten Blockes raus zu bekommen
muss du natürlich folgendes machen:
Set rngToCopy = .Range(.Cells(latestPoint, 1), .Cells(c.Row - 1, 7))

(latestPoint = c.Row+1 einfach wieder in: latestPoint = c.Row, abändern)
Das Fettmarkierte ist das entscheidende.
Der Code sucht nach der nächsten Nummer und bei einem treffer kopiert er jetzt alles bis zu Zeile vor der nächsten Nummer, das war vorher falsch, da er eben bis zur Nummer markiert und kopiert hat.
Nochmals entschuldigung.
Anzeige
AW: Mein Fehler tut mir leid...
04.04.2017 09:27:33
Sandro
Hallo Max,
Das ist genial, jetzt funktioniert es. Den letzten Block muss ich manuell kopieren, das ist aber ein kleiner Aufwand im Vergleich zu vorher.
Könnte man das Makro evtl. noch optimieren? Meine Idee ist es, nur die ersten 3 Spalten zu kopieren und dann die Klassierungsnummer und die Maschinennummer als "Überschrift" zu übernehmen.
Habe das hier mal mit Farben versucht etwas zu veranschaulichen:
https://www.herber.de/bbs/user/112616.xlsx
Gruss
Sandro
Hier die Mappe
04.04.2017 10:03:50
Max2
Hallo,
unten die Mappe mit anpassung.
Ich habe in den Code noch eingefügt, dass jetzt rechts neben Klassierung auf Tab2 noch
von Zeile bis Zeile steht, damit der Nutzer sich besser orientieren kann, bzw suchen kann.
Willst du das nicht haben, muss einfach alles im Code Löschen wo "bZeile" und "vZeile" steht.
Das Problem mit dem letzten Datensatz habe ich auch noch gelöst.
Desweiteren habe ich auf Tab1, zwei Buttons eingefügt, einer davon Löscht ALLE! Daten und Formate
auf Tab2, sollen nur die Daten und nicht die Formate gelöscht werden, musst du einfach
folgendes Löschen: "ThisWorkbook.Sheets(2).ClearFormats"
Hier deine Mappe: https://www.herber.de/bbs/user/112617.xlsm
Anzeige
AW: Hier die Mappe
04.04.2017 10:41:24
Sandro
Hallo Max,
Wow! Deine Lösung ist der absolute Hammer! Die Funktion mit Von/Bis ist echt nice to have.
Echt super wie schnell du diese Lösung zusammengestellt hast. Vielen Dank nochmals!
Gruss
Sandro
Kein Problem und Danke für Rückmeldung... owT
04.04.2017 10:45:04
Max2

AW: Daten in Spalten Blockweise Kopieren
03.04.2017 14:44:07
Werner
Hallo Sandro,
dann kopier doch mal von Hand 2 oder 3 Blöcke von Tabelle1 in Tabelle2 (so wie du das Ergebnis haben willst) und lade die Beispielmappe dann nochmals hoch.
Mir zumindes ist noch nicht klar, wie dein Ergebnis aussehen soll.
Gruß Werner
Anzeige
AW: Daten in Spalten Blockweise Kopieren
03.04.2017 14:47:46
Sandro
Hallo Werner,
Ich habe nun in dem 2. Tabellenblatt mein Ergebnis von Hand Dargestellt. Ich hoffe, nun ist es verständlicher.
https://www.herber.de/bbs/user/112583.xlsx
Gruss Sandro

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige