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

Zeilen x-mal kopieren

Zeilen x-mal kopieren
10.07.2019 17:46:47
Stephan
Hallo Zusammen,
ich benötige eure Hilfe. Ich habe eine Tabelle mit mehreren Tausend Zeilen, deren Aufbau für Auswertungszwecke blöd ist. Aus diesem Grund möchte ich die Ausgangssituation in die Zielsituation bringen (siehe Datei im Anhang). Im Bereich B bis F steht der Umsatz pro Region. Ein Makro soll nun prüfen, ob im Bereich B bis F mehrere Werte größer 0 enthalten sind. Wenn das der Fall ist, soll die Zeile x-mal kopiert werden. Also wenn zwei Werte vorhanden sind, soll die einmal kopiert werden, bei drei Werten zweimal etc. Super wäre auch, wenn er in der kopierten Zeile die anderen Werte bis auf einen löscht. Mit dem Rekorder bekomme ich das nicht. Habe zwar schon Makros gefunden, die jede Zeile x-mal kopieren, aber das führt nur bedingt zum Ziel. Ich danke euch im Voraus.
https://www.herber.de/bbs/user/130821.xlsx

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen x-mal kopieren
10.07.2019 17:51:05
Hajo_Zi
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Zeilen x-mal kopieren
10.07.2019 18:24:20
Piet
Hallo Stephan
ob Hajo .xlsm Dateien herunter laedt? Da habe ich Zweifel.
In der xlsx Datei haetten ihm aber Unstimmigkeiten zu deiner Aufgabenstellung auffallen müssen! Schau sie dir bitte selbst an.
In Zeile 2 Tisch ist der ganze Datensatz für Tische kopiert, wird dann in Einzelbetraege zerlegt.
Wobei der erste Betrag von 23 EU nicht wiederholt wird! Nur 24 EU und 12 EU kommen vor.
In Zeile 6 Bett werden sofort nur zwei Einzelbetraege -OHNE die Gesamtzeile- aufgelistet!
Was ist denn da jetzt richtig? Das widerspricht sich ja von der Logik her um hier ein korrketes Makro zu entwickeln.
mfg Piet
Anzeige
AW: Zeilen x-mal kopieren
10.07.2019 18:39:30
Stephan
Hallo Piet,
danke für den Hinweis. Ich habe es korrigiert. Ziel ist, dass jeder Einzelbetrag in einer separaten Zeile dargestellt wird. Danke nochmals für deinen Hinweis.
https://www.herber.de/bbs/user/130824.xlsm
Grüße
Stephan
AW: Zeilen x-mal kopieren
10.07.2019 18:39:48
Hajo_Zi
Hallo Piet,
warum sollte ich. Du hast schon einen Fehler festgestellt.
Gruß Hajo
AW: Zeilen x-mal kopieren
10.07.2019 19:07:54
Piet
Hallo Hajo
du warst zuerst am Thread, und ich habe Respekt vor deinem Fachwissen, das weit höher ist wie meins!
Vielleicht ist dir aufgefallen das ich in viele Thread nicht reingehe die von Kollegen bearbeitet werden.
Es sei denn das der Frager keine befriedigende Antwort erhaelt und die Aufgabe von mir gelöst werden kann.
mfg Piet
Anzeige
AW: Zeilen x-mal kopieren
10.07.2019 19:20:38
Hajo_Zi
Hallo Piet,
ich bin raus. Ich kann Dateien von Herber.de nicht öffnen.
Gruß Hajo
AW: Zeilen x-mal kopieren
10.07.2019 19:54:49
Piet
Hallo Stephan
wie schön, Ruhe im Forum. Dann freue ich mich ein Lösung anbieten zu können. Zur Vorsicht bitte zum Testen die Originaldaten ins Beispiel kopieren, und schauen ob die Lösung einwandfrei klappt. Würde mich freuen.
https://www.herber.de/bbs/user/130825.xlsm
mfg Piet
AW: Zeilen x-mal kopieren
10.07.2019 20:15:33
Stephan
Hallo Piet,
danke, danke. Funktioniert. Ich baue den mal in meine Originaldatei. Schönen Abend für dich.
Grüße
Stephan
Anzeige
AW: Zeilen x-mal kopieren
12.07.2019 16:37:49
Stephan
Hallo Piet,
funktioniert super. In meiner Originaldatei stehen die Werte in Spalten 25 bis 30. Davor und danach gibt es auch noch Spalten, die kopiert werden sollten. Ich habe mal Teile des Code kopiert und markiert, wo aus meiner Sicht anpassungen erfolgen müssten:
Bei dem Schritt ist mir nicht klar, was er in Spalte 6 und 4 macht.

.Cells(AC.Row, 1).Resize(1, 6).Copy ZTab.Cells(z, 1)
'ganzen Datensatz auf "0" stellen
ZTab.Cells(z, 2).Resize(1, 4) = 0
Wenn sich die Werte in den Spalten 25 bis 30 befinden, muss ich j anpassen.
Das mit Tezise 6 ist mir nicht klar.
For j = 2 To 5
If .Cells(AC.Row, j) > 0 Then
'Nullzeile nach unten kopieren
ZTab.Cells(z, 1).Resize(1, 6).Copy ZTab.Cells(z + 1, 1)
ZTab.Cells(z, j).Value = .Cells(AC.Row, j).Value
z = z + 1
End If
Next j
Next AC
'Letzte Nullzeile löschen! (überflüssig)
ZTab.Cells(z, 1).Resize(1, 6).Clear


Hier habe die nochmal die Datei: https://www.herber.de/bbs/user/130871.xlsm
Grüße
Stephan
Anzeige
AW: Zeilen x-mal kopieren
12.07.2019 17:57:03
Piet
Hallo Stephan
gratuliere, du hast den Code sehr gut verstanden, und fast perfekt angepasst! Ausser Resize() - nur den Teil musst du aendern:
'Betrag Spalten in EU löschen oder auf "0" setzen
ZTab.Cells(z, 25).Resize(1, 6) = Empty '** oder "Null"
Resize bezieht sich hier auf die Zelle Cells(z, 25), und erweitert den Bereich nach dem System (Z,S). Kleinster zulaessiger Wert ist 1, nie Null oder negative Zahlen verwenden!!
.Resize(1, 6) = Empty - löscht jetzt die EU Spalten von 25-30, oder du fügst eine "0" ein, wie du willst.
.Resize(6, 1) = Empty - löscht dir 6 Zeilen nach unten, nur in der Spalte 25!
.Resize(6, 10) = Empty - löscht dir einen ganzen Block, so wie du ihn angibst!
Ich denke das Resize dir jetzt kein Raetsel mehr ist ...
mfg Piet
Anzeige
AW: Zeilen x-mal kopieren
12.07.2019 18:21:40
Stephan
Hallo Piet,
danke, danke. Aber Theorie und Praxis.... Ich habe ihn angepasst, aber er übernimmt den Text vollständig bis Spalte 6, schreibt auch keine Nullen mehr rein und übernimmt nicht die Gesamtsumme sowie den Vorgesetzten. Läuft bei mir leider noch nicht rund.
Ich habe die Datei nochmal aktualisiert: https://www.herber.de/bbs/user/130873.xlsm
Grüße
Stephan
AW: Zeilen x-mal kopieren
12.07.2019 18:54:01
Piet
Hallo Stephan
anbei der korrigierte Code, jetzt sollte er wie gewünscht laufen. In Spalte Y-AD hab ich die Nullen gelöscht.
Wenn du lieber Nullen haben willst musst du nur hier Empty durch 0 ersetzen!
ZTab.Cells(z, 25).Resize(1, 5) = 0
mfg Piet
Sub Umsaetze_einzeln_auflisten()
Dim AC As Range, j As Integer
Dim QTab As Worksheet, z As Long
Dim ZTab As Worksheet, lz1 As Long
On Error GoTo Fehler
Set ZTab = Worksheets(ZielTab)
'alte Ziel Tabelle kompltt löschen
ZTab.Rows("2:" & Rows.Count).Delete
Application.ScreenUpdating = False
With Worksheets(Quelle)
'LastZell in Quell Tabelle suchen
lz1 = .Cells(Rows.Count, 1).End(xlUp).Row
z = 2  '1. Zeile in Ziel Tabelle
'alle Quell Daten einzeln kopieren
For Each AC In .Range("A2:A" & lz1)
'ganzen Datensatz mit Formel kopieren
.Cells(AC.Row, 1).Resize(1, 31).Copy ZTab.Cells(z, 1)
'** ganzen Datensatz auf "0" stellen oder löschen
ZTab.Cells(z, 25).Resize(1, 5) = Empty  '0
For j = 25 To 29
If .Cells(AC.Row, j) > 0 Then
'Nullzeile nach unten kopieren
ZTab.Cells(z, 1).Resize(1, 31).Copy ZTab.Cells(z + 1, 1)
ZTab.Cells(z, j).Value = .Cells(AC.Row, j).Value
z = z + 1
End If
Next j
Next AC
'Letzte Nullzeile löschen!  (überflüssig)
ZTab.Cells(z, 1).Resize(1, 31).Clear
End With
Exit Sub
Fehler:  MsgBox "Fehler aufgetreten:  " & Chr(10) & Error()
End Sub

Anzeige
AW: Zeilen x-mal kopieren
12.07.2019 19:03:43
Piet
Nachtrag
in der Spalte AD -Region gesamt- steht eine Formel drin! Wenn du sie durch Werte ersetzen willst musst du die For Next Schleife so programmieren:
          For j = 25 To 29
If .Cells(AC.Row, j) > 0 Then
'Nullzeile nach unten kopieren
ZTab.Cells(z, 1).Resize(1, 31).Copy ZTab.Cells(z + 1, 1)
ZTab.Cells(z, j).Value = .Cells(AC.Row, j).Value
ZTab.Cells(z, 30).Value = ZTab.Cells(z, 30).Value
z = z + 1
End If
Next j

AW: Zeilen x-mal kopieren
12.07.2019 19:30:01
Stephan
Hallo Piet,
funktioniert wunderbar. Vielen Dank und ein schönes Wochenende.
Grüße
Stephan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige