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

Matrix ausrollen Makro oder auch Formel?

Matrix ausrollen Makro oder auch Formel?
26.01.2022 21:17:08
Thomas
Hallo Excelfreunde,
ich versuche gerade eine Tabelle ( oder besser Matrix ) auszurollen.
Da es sehr schwierig ist dies zu erklären, habe ich mit Hilfe des Rekorders das Makro aufgezeichnet und den Ausgangszustand sowie das Wunschergebnis ins Beispiel
aufgezeichnet.
Das Problem ist, die Parameter, Anzahl der Reihen und die Anzahl der Wiederholungen Flexibel sein müssten.
Am besten wäre eine Msgbox die vor der Ausführung diese Parameter abfragt.
https://www.herber.de/bbs/user/150701.xlsm
anbei meine Aufzeichnung

Sub ausrollen()
' Makro1 Makro
Sheets("ausgerollt").Activate
Sheets("Original").Select
Range("A3:G17").Select
Selection.Copy
Sheets("ausgerollt").Select
ActiveSheet.Paste
Selection.Copy
Sheets("ausgerollt").Select
Range("A3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A6:G8").Select
Selection.Copy
Range("H3").Select
ActiveSheet.Paste
Range("A9:G11").Select
Application.CutCopyMode = False
Selection.Copy
Range("O3").Select
ActiveSheet.Paste
Range("A12:G14").Select
Application.CutCopyMode = False
Selection.Copy
Range("V3").Select
ActiveSheet.Paste
Range("A15:G17").Select
Application.CutCopyMode = False
Selection.Copy
Range("AC3").Select
ActiveSheet.Paste
Range("A9:G11").Select
Application.CutCopyMode = False
Selection.Copy
Range("H6").Select
ActiveSheet.Paste
Range("A12:G14").Select
Application.CutCopyMode = False
Selection.Copy
Range("O6").Select
ActiveSheet.Paste
Range("A15:G17").Select
Application.CutCopyMode = False
Selection.Copy
Range("V6").Select
ActiveSheet.Paste
Range("A3:G5").Select
Application.CutCopyMode = False
Selection.Copy
Range("AC6").Select
ActiveSheet.Paste
Range("A12:G14").Select
Application.CutCopyMode = False
Selection.Copy
Range("H9").Select
ActiveSheet.Paste
Range("A15:G17").Select
Application.CutCopyMode = False
Selection.Copy
Range("O9").Select
ActiveSheet.Paste
Range("A3:G5").Select
Application.CutCopyMode = False
Selection.Copy
Range("V9").Select
ActiveSheet.Paste
Range("A6:G8").Select
Application.CutCopyMode = False
Selection.Copy
Range("AC9").Select
ActiveSheet.Paste
Range("A15:G17").Select
Application.CutCopyMode = False
Selection.Copy
Range("H12").Select
ActiveSheet.Paste
Range("A3:G5").Select
Application.CutCopyMode = False
Selection.Copy
Range("O12").Select
ActiveSheet.Paste
Range("A6:G8").Select
Application.CutCopyMode = False
Selection.Copy
Range("V12").Select
ActiveSheet.Paste
Range("A9:G11").Select
Application.CutCopyMode = False
Selection.Copy
Range("AC12").Select
ActiveSheet.Paste
Range("A3:G5").Select
Application.CutCopyMode = False
Selection.Copy
Range("H15").Select
ActiveSheet.Paste
Range("A6:G8").Select
Application.CutCopyMode = False
Selection.Copy
Range("O15").Select
ActiveSheet.Paste
Range("A9:G11").Select
Application.CutCopyMode = False
Selection.Copy
Range("V15").Select
ActiveSheet.Paste
Range("A12:G14").Select
Application.CutCopyMode = False
Selection.Copy
Range("AC15").Select
ActiveSheet.Paste
Range("A3:AI17").Select
Selection.Copy
Range("AJ3").Select
ActiveSheet.Paste
End Sub
kann mir jemand dabei behilflich sein?
habt schon mal rechtvielen dank für euer interesse.
mfg thomas

28
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ich sehe nur Formate, und 2 oder 5 auch nicht
26.01.2022 22:28:16
lupo1
Wo Du wolle?
AW: Matrix ausrollen Makro oder auch Formel?
27.01.2022 05:05:34
Thomas
Hallo Lupo,
besten dank das du mal geschaut hast.
Die farblich markierten Zellen müssen immer so zusammen bleiben. Gefüllt sind die Zellen mit sehr unterschiedlich Daten.
Meistens sind sie mit Texten gefüllt. Aber es können auch Uhrzeiten oder Zahlen drin stehen.
Im normalen Fall sind diese nicht farblich gestaltet. Ich habe diese nur Farblich gemacht damit man besser sieht welche Zellen zusammen bleiben müssen.
Die 5 bedeutet das die auszurollende Matrix aus 5 X 3 Zellen (untereinander ) besteht. Es sind immer drei untereinander zusammengehörige Zellen. ( Es können aber auch mal nur zwei 2 Reihen oder auch 6 )seien. Die zwei in Zelle F2 bedeutetet wie oft diese Matrix ausgerollt werden soll. Auch diese Anzahl ist variabel.
Ich habe in das Beispiel mal irgendwelche Daten reingeschrieben. Wobei die farblich markierten Zellen so zusammen bleiben müssen.
Vielleicht ist noch wichtig das innerhalb dieser Matrix keine Zelle leer ist.
Da sich dies für mich schwer zu erklären ist habe ich das mit den Rekorder aufgezeichnet. Dieses Makro macht genau dies was ich benötige.
Ich kann es aber so nicht benutzen da die Matrix immer aus verschiedenen Anzahl an reihen ist . Sie könnte auch von A3 bis G20 oder von a3 bis g8 gehen.
https://www.herber.de/bbs/user/150704.xlsm
mfg thomas
Anzeige
AW: Matrix ausrollen Makro oder auch Formel?
27.01.2022 08:26:48
MCO
Moin!
Wenn ich mal davon ausgehe, dass du alles untereinander stehen haben möchtest, dann probier das mal.
Die Anzahl der Reihen spielt (bei geschlossenem Datenbereich) keine Rolle.

Sub ausrollen_kompakt()
Dim rng As Range
rpt As Long
i As Long
Set rng = Range("a3").CurrentRegion
rpt = Range("F1")
With Sheets("ausgerollt")
.Columns("A:zz").ColumnWidth = 15
.Cells.Clear
End With
For i = 0 To rpt - 1
einfügezeile = i * rng.Rows.Count
rng.Copy Sheets("ausgerollt").Cells(einfügezeile + 1, "A")
Next i
End Sub
Gruß, MCO
Makro oder auch Formel?
27.01.2022 12:08:03
Thomas
Hallo MCO,
besten dank für dein Interesse und auch für dein versuch.
Leider ist es nicht das was ich benötige.
Ich habe mein aufgezeichnetes Makro über erarbeitet. Dies war ganz schön unübersichtlich.
Nun macht es das was es soll. Mein Problem ist, wenn die Matrix mal bis zur Zeile geht 20 oder 23 usw. geht muss ich das Macro jedes mal neu anpassen.
Vielleicht weiß jemand wie man so eine ( wahrscheinlich ) verschachtelte Schleife Programmiert.
' Makro1 Makro
'
Sheets("ausgerollt").Activate
With Sheets("ausgerollt")
.Columns("A:zz").ColumnWidth = 15
.Cells.Clear
End With
Sheets("original").Range("A3:G5").Copy Sheets("ausgerollt").Range("A3")
Sheets("original").Range("A6:G8").Copy Sheets("ausgerollt").Range("a6")
Sheets("original").Range("A9:G11").Copy Sheets("ausgerollt").Range("a9")
Sheets("original").Range("A12:G14").Copy Sheets("ausgerollt").Range("a12")
Sheets("original").Range("A15:G17").Copy Sheets("ausgerollt").Range("a15")
Sheets("original").Range("A6:G8").Copy Sheets("ausgerollt").Range("h3")
Sheets("original").Range("A9:G11").Copy Sheets("ausgerollt").Range("h6")
Sheets("original").Range("A12:G14").Copy Sheets("ausgerollt").Range("h9")
Sheets("original").Range("A15:G17").Copy Sheets("ausgerollt").Range("h12")
Sheets("original").Range("A3:G5").Copy Sheets("ausgerollt").Range("h15")
Sheets("original").Range("A9:G11").Copy Sheets("ausgerollt").Range("o3")
Sheets("original").Range("A12:G14").Copy Sheets("ausgerollt").Range("o6")
Sheets("original").Range("A15:G17").Copy Sheets("ausgerollt").Range("o9")
Sheets("original").Range("A3:G5").Copy Sheets("ausgerollt").Range("o12")
Sheets("original").Range("A6:G8").Copy Sheets("ausgerollt").Range("o15")
Sheets("original").Range("A12:G14").Copy Sheets("ausgerollt").Range("v3")
Sheets("original").Range("A15:G17").Copy Sheets("ausgerollt").Range("v6")
Sheets("original").Range("A3:G5").Copy Sheets("ausgerollt").Range("v9")
Sheets("original").Range("A6:G8").Copy Sheets("ausgerollt").Range("v12")
Sheets("original").Range("A9:G11").Copy Sheets("ausgerollt").Range("v15")
Sheets("original").Range("A15:G17").Copy Sheets("ausgerollt").Range("ac3")
Sheets("original").Range("A3:G5").Copy Sheets("ausgerollt").Range("ac6")
Sheets("original").Range("A6:G8").Copy Sheets("ausgerollt").Range("ac9")
Sheets("original").Range("A9:G11").Copy Sheets("ausgerollt").Range("ac12")
Sheets("original").Range("A12:G14").Copy Sheets("ausgerollt").Range("ac15")
Die Beispieldatei habe ich auch ein wenig überarbeitet.
Ich hoffe das ich es jetzt besser gemacht habe.
https://www.herber.de/bbs/user/150715.xlsm
mfg thomas
Anzeige
Das Nichtkennen von Rest (Mod) beschert ...
27.01.2022 14:42:44
Rest
... regelmäßig solche Monstercodes.
Ich überlasse es den VBA'lern, die auch die Struktur gleich erkennen (gewisse Diagonalen).
OT: Übrigens ein Bsp f.Begriffsverwirrnis, ...
27.01.2022 15:10:45
Luc:-?
…Lupo:
Als Xl-Fkt
US-Original: MOD entspricht Modulo
dt-Übersetz: REST dito also eigentlich eben nicht der reine Divisionsrest
Als VB-Operator
Mod entspricht nicht modulo, sondern remnant, zu dt Rest
Die Unterschiede zwischen beiden wdn bei negativen Argumenten sichtbar → Ganzzahl-/Abrundungsregel und VorzeichenÜbernahme unterscheiden sich. Das hängt mit den vbFktt Int und Fix zusammen, die den gleichen Unterschied zeigen. MOD/REST in Xl verwendet INT/GANZZAHL, Mod in VBA Fix. Allerdings hat Mod in VBA auch Limits!
Gruß, Luc :-?
Anzeige
Ja, aber das Grundlegende ...
27.01.2022 21:58:01
lupo1
... ist denn schon beiden gemein.
=REST(ZEILE(A1)-0;4)+0 wiederholt die Folge 1;2;3;0
=REST(ZEILE(A1)-1;4)+1 wiederholt die Folge 1;2;3;4
Die 0 in der Formel habe ich nur aufgeführt, damit es hübscher aussieht, und man den Unterschied erkennt.
AW: Ja, aber das Grundlegende ...
28.01.2022 05:07:38
Thomas
Hallo Lupo1,
ich sehe zwar nicht durch aber trotzdem rechtvielen dank.
Wie könnte es weitergehen?
mfg thomas
AW: Ja, aber das Grundlegende ...
28.01.2022 09:29:22
Herbert_Grom
Hallo Thomas,
ich bin dran, aber hab ein bisschen Geduld!
Servus
AW: Ja, aber das Grundlegende ...
28.01.2022 10:12:17
Herbert_Grom
Du hast geschrieben: "Anzahl der Reihen = 5".
Meinst du damit die 5 farbigen Blöcke?
Und wie soll "ausgerollt" aussehen, wenn z. B. "Anzahl der Reihen = 3" ist? Mach mir mal ein manuelles Beispiel dazu.
Anzeige
AW: Ja, aber das Grundlegende ...
28.01.2022 10:45:21
Herbert_Grom
Und was meinst du mit "Anzahl der Wiederholungen"? Was soll dabei wiederholt werden?
AW: Ja, aber das Grundlegende ...
28.01.2022 10:56:07
Thomas
Hallo Herbert_Grom,
das ist Cool das du dran bist.
Ich bereite gerade eine Erklärung vor.
In ca. 10 min bin ich soweit.
Hab rechtvielen dank Thomas
AW: Ja, aber das Grundlegende ...
28.01.2022 11:34:20
Thomas
Hallo Herbert_Grom,
das wäre ja cool.
Es sind immer drei zusammenhängende Zeilen.
In meinem Beispiel ist z. B Spalte Range "a3 :a5" ein zusammenhängender Block; Range "B3 : B5" ist ein Block ;Range "c3 : c5" ist ein Block , Range "d3 : d5" ist; ; Range "e3 : e5" ist ein Block, Range "F3 : F5" ist ein Block und ;Range "G3:G5" ist ein Block. Jeder Block stellt ein Wochentag da. Diese genannten Blöcke ergeben zusammen eine Woche. ( Gelb gekennzeichnet ). die grünen sind eine Woche, die Blauen sind eine Woche usw...
Gelb bedeutet Zyklus 1, Grün Zyklus 2, Blau Zyklus 3, braun Zyklus 4 und grau Zyklus 5. Diese 5 Zyklen wiederholen sich immer wieder. Der Einzige unterschied ist das aus Zyklus1 Zyklus2 wird. Deshalb beginnt der neue Abschnitt ( in h1 auch mit der Farbe grün ).
Ich habe es im Beispiel mit Pfeilen erklärt. Ab Spalte AJ geht das ganze von vorn wieder los ( erkennt man daran das die gelbe Woche wieder oben ist.)
Mit Anzahl der Reihen meine ich die Anzahl der Zyklen ( Wochen) ( es könnten auch noch ein Zyklus 6 oder 7 dazu kommen eine Reihe mit rot oder so. )
Zu der Anzahl der Wiederholung habe ich die erste Wiederholung mit einem lila Balken gekennzeichnet . Um die Zweite Wiederholung zu erstellen müsste man nur den Bereich
A3 bis Ai 17 komplett kopieren und ab zelle aj3 wieder einfügen.
https://www.herber.de/bbs/user/150740.xlsm
Hab rechtvielen vielen dank für deine Geduld. Ich kann es aber irgendwie nicht besser Erklären .
mfg thomas
Anzeige
AW: Ja, aber das Grundlegende ...
28.01.2022 12:23:28
Herbert_Grom
Warum hast du jetzt auch im "Original" Daten ab Spalte H?
AW: Ja, aber das Grundlegende ...
28.01.2022 12:55:04
Thomas
Hallo Herbert_Grom,
dies habe ich nur gemacht um den ersten Schritt zu zeigen.
Der erste Block ( Woche ) ist bei der Spalte G zu Ende.
Sorry damit habe ich dich ganz schön verwirrt.
mfg thomas
AW: Ja, aber das Grundlegende ...
28.01.2022 15:35:17
Herbert_Grom
Du schreibst: "Ab Spalte AJ geht das ganze wieder von vorn los (erkennt man daran das die gelbe Woche wieder oben ist)."
Sehe ich das richtig, dass da dann die 2. Wiederholung beginnt?
Wenn ja, welche Daten werden dann dorthin übertragen?
AW: Ja, aber das Grundlegende ...
28.01.2022 15:46:30
Herbert_Grom
Sehe ich das richtig, dass die "Anzahl der Reihen" auch variieren kann und nicht immer alle 5 farbigen Wochenblöcke gleichzeitig kopiert werden müssen?
Anzeige
AW: Ja, aber das Grundlegende ...
28.01.2022 16:29:42
Thomas
Hallo Herbert_Grom,
ja es können mehr farbige Reihen sein oder auch weniger.
mfg thomas
AW: Ja, aber das Grundlegende ...
28.01.2022 16:34:41
Thomas
Hallo Herbert_Grom,
"Sehe ich das richtig, dass da dann die 2. Wiederholung beginnt?
Wenn ja, welche Daten werden dann dorthin übertragen?"
Ja die Ausgansdaten sind immer im Bereich A bis D.
mfg thomas
mfg thomas
AW: Ja, aber das Grundlegende ...
28.01.2022 16:37:51
Herbert_Grom
Welchen Sinn macht das dann, diese Daten mehrmals hintereinander zu kopieren?
AW: Ja, aber das Grundlegende ...
28.01.2022 17:00:51
Thomas
Hallo Herbert_Grom,,
dies sind "ausollbare" Ablauf Muster. Die Daten sind immer innerhalb eines Umlaufs gleich.
Davon gibt es sehr viele verschiedene. und meist auch immer unterschiedliche Anzahl Reihen lang. Es ist Möglich das diese Muster über mehrere Monate oder Jahre gültig sind.
Manchmal ändern sich die Daten innerhalb eines Umlaufs . Dann muss man diese jedoch immer neu ausrollen.
Da dies sehr sehr Zeitaufwenig ist bin ich auf der suche nach einer flexiblen Lösung.
mfg thomas
Anzeige
AW: Ja, aber das Grundlegende ...
28.01.2022 17:50:57
Herbert_Grom
Hallo Thomas,
sorry, aber das ist mir zu viel Aufwand, für eine Forums-Hilfe. Vielleicht meldet sich ja noch jemand, der das trotzdem hier macht. Falls du jedoch an einer Lösung als Auftragsprogrammierung interessiert bist, dann schicke mir eine eMail. Meine findest du hier in den Profilen.
Servus
AW: Ja, aber das Grundlegende ...
28.01.2022 20:26:29
Thomas
Hallo Herbert_Grom,
hab aber trotzdem rechtvielen dank das dir dies mal angeschaut hast.
Das mit der vielen Arbeit verstehe ich zu gut. Was ihr hier in diesen Forum an Zeit investiert um Leuten wie mich zu helfen ist der Wahnsinn.
Ich wünsche dir noch ein schönes Wochenende.
mfg thomas
Anzeige
AW: Ja, aber das Grundlegende ...
29.01.2022 16:25:11
Herbert_Grom
Hallo Thomas,
es hat mir jetzt doch keine Ruhe gelassen und so habe ich noch mal probiert. Schau dir mal an, ob dir das schon hilft, oder ob wir da noch was hinzufügen müssen:
https://www.herber.de/bbs/user/150752.xlsm
Servus
riesen Dank an Herbert_Grom
30.01.2022 11:36:37
Thomas
Hallo Herbert_Grom,
sorry das ich mich erst jetzt melde. Ich hatte nicht mehr mit einer Lösung gerechnet.
Es funktioniert super.
Hab Riesen Riesen dank das du weiter gemacht hast.
Ich wünsch dir noch ein ruhigen und friedlichen Sonntag
mfg thomas
Anzeige
AW: Bitte sehr & danke für die Rückmeldung! owt
30.01.2022 12:04:15
Herbert_Grom
,,,
AW: Ja, aber das Grundlegende ...
28.01.2022 16:35:15
Thomas
Hallo Herbert_Grom,
"Sehe ich das richtig, dass da dann die 2. Wiederholung beginnt?
Wenn ja, welche Daten werden dann dorthin übertragen?"
Ja die Ausgansdaten sind immer im Bereich A bis D.
mfg thomas
mfg thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige