ich habe eine Aktionsliste in Excel von einer anderen Person übernommen und hätte gerne folgende Änderungen dort vorgenommen. Leider reichen meine Kenntnisse nicht dafür aus, dies so umzustricken. Wer kann mir dabei behilflich sein, bzw. ist das überhaupt, so wie ich es möchte möglich ?
Die Datei enthält zwei Tabellen (offene- und abgeschlossene Aktionen). Ich hab dann in der Tabelle ("Offene Aktionen") die Möglichkeit ein "X" in der Spalte A zu setzen und wenn ich dann den Command Button "Übertragen" drücke, wird die komplette Zeile in die Tabelle ("Abgeschlossene Aktionen") verschoben und in der Tabelle ("Offen Aktionen") rutschen die weiteren Zeilen so wieder zusammen, dass keine Lücken entstehen. Das funktioniert auch super, ich benötige aber eine Änderung, die ich in den Tabellen "neue" der Beispieldatei geändert habe, wobei dort für eine Problembeschreibung vier Aktionen möglich sind. Das erste Problem ist schon der Kalender, in Spalte C läst sich jetzt nicht mehr mit Doppelklick aufrufen, weil die Zellen jetzt verbunden sind und die Übertragung wird ohne Code Änderung in diesem Format nicht funktionieren. Vielleicht ist es ja auch so nicht möglich, aber vielleicht gibt es das draußen doch einen SUPER-Hero der das doch hin bekommt.
Zitat:Das erste Problem ist schon der Kalender, in Spalte C läst sich jetzt nicht mehr mit Doppelklick aufrufen, weil die Zellen jetzt verbunden sind
Das lässt sich relativ easy lösen indem Du die Verbindung aufhebst.
Zitat:und die Übertragung wird ohne Code Änderung in diesem Format nicht funktionieren.
vor allem müsste man wissen, was wie übertragen soll. Wenn man 4 verschiedene Aktionen mit 4 verschiedenen Akteuren und 4 verschiedenen Daten hat müsste man eigentlich 4 Zeilen draus machen, oder nicht? Da wäre dann auch die Frage, wie die Zählung erfolgen soll. Wird aus der ersten Übertragung dann 1-4 falls das noch frei ist und aus der zweiten dann 7-9 falls da schon ein einzelner dazwischen gekommen ist und die zweite Position nur 3 Einträge hat? Die Verbindung zur bisherigen Nummer geht ja sowieso verloren wenn Du die Tabelle mit Daten unterschiedlicher Blätter füllst.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
es soll der komplette Block 1 zu 1 übertragen werden, dies wird ja durch das setzen von dem "X" in Spalte 1 festgelegt. Es wird auch nur übertragen, wenn alle 4 Aktionen ein "Erledigt" Datum haben. Ist schwierig, wenn es überhaupt funktioniert. Klar, übertragen ist nicht die Schwierigkeit, aber das die anderen Funktionalitäten, sprich ich übertrage einen Block aus der Mitte, so dass alles wieder aufrutscht, bzw. das dieser Block sich in der anderen Tabelle unten anfügt. Aber, das ist die Einschätzung von einem Anfänger.
der Ansatz ist schon fast perfekt, jetzt müssten nach dem übertragen nur noch die verbunden Zellen (Spalte A bis F + Spalte M) Bestand haben, denn diese sind danach nicht mir verbunden.
Du könntest das Ende vom Makro ...neu so gestalten:
Code:
Application.DisplayAlerts = False Set rngX = rngX.Cells(1).Resize(4, 1) rngX.Merge For X = 2 To 7 rngX.Offset(0, X).Resize(4, 1).Merge Next rngX.Offset(0, 12).Resize(4, 1).Merge
On Error GoTo 0 NIX: Application.DisplayAlerts = True
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
18.08.2020, 10:26 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2020, 10:26 von deesnider.)
Hallo,
schon mal danke für die großartige mühe, ich hatte im Code eine kleine Anpassung vorgenommen, denn es wurden falsche Zellen verbunden. Aus For X = 2 To 7 wurde For X = 1 To 5. Das einzige Probleme ist noch, wenn ich wie in der jetzt wieder hochgeladenen Datei den Button klicke, bleibt test4 in falscher Formatierung, also nach oben hin werden die verbunden Zellen wieder hergestellt und nach unten scheinbar nicht, zumindest wenn man gleichzeitig mehrere X setzt. Kann man da auch noch was machen ?
Achso, rngX.Offset(0, 12).Resize(4, 1).Merge macht scheinbar nichts, zumindest wird der Status in Spalte M nicht verbunden, sehe aber da keinen Fehler. Komisch.
Schon mal herzlichen vielen Dank für die bisherige Hilfe
18.08.2020, 18:05 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2020, 18:05 von schauan.)
Hallöchen,
Spalte 1 sollte eigentlich schon über der Schleife abgefrühstückt sein
Setze mal in die Zeile
rngX.Offset(0, 12).Resize(4, 1)
einen Haltepunkt und füge diese Überwachung ein:
rngX.Offset(0, 12).Resize(4, 1).Address
Da sollte eigentlich die Spalte M stehen bzw. konkret die Adresse, z.B. $M$8:$M$11
Zitat:also nach oben hin werden die verbunden Zellen wieder hergestellt und nach unten scheinbar nicht,
Entweder könnte man in einer Schleife um den letzten Code sicherheitshalber das Mergen alle 4 Zeilen ausführen oder man könnte schauen, wie man das weiter oben einbindet Man könnte übrigens auch prüfen, ob eine Zelle in einem verbundenen Bereich liegt und dann nur mergen, wenn es nicht der Fall ist.
Im Prinzip
Code:
For Y = 1 T 100 Set rngX = rngX.Cells(1).Resize(4, 1) rngX.Merge For X = 2 To 7 rngX.Offset(0, X).Resize(4, 1).Merge Next rngX.Offset(0, 12).Resize(4, 1).Merge Set rngx = rngx.Offset(4,0) Next
Wobei man dann schauen muss, ob man eine feste Zahl, z.B. die 100, programmiert oder die Anzahl der Blöcke analysiert.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)