Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

zellen_automatisch_auschneiden_und_einfuegen

Forumthread: zellen_automatisch_auschneiden_und_einfuegen

zellen_automatisch_auschneiden_und_einfuegen
16.04.2025 14:53:59
Matthias
Hallo zusammen,
ich würde gern diesen Thread nochmal aufnehmen. Da ich nicht weis wie ich direkt darauf antworten kann auf diesem Weg.

https://www.herber.de/forum/archiv/2004to2008/2004011_zellen_automatisch_auschneiden_und_einfuegen.html

Es geht darum aus einem Mitarbeitergespräch das wir als Excel Sheet zurückbekommen bestimmte Zellen zu leeren und die Datei für das nächste Gespräch vorzubereiten.
Aktuelle habe ich eine Ausgangsdatei und eine die das Ergebnis zeigt. In beiden Dateien sind 2 Tabellenblätter ausgeblendet. Diese sollen auch bearbeitet werden. Ich habe ein Makro für die einzelnen Schritte aufgezeichnet, leider wird nicht alles so ausgeführt wie ich es mir wünsche.

Folgendes soll gemacht werden:

Deckblatt:
B7 löschen
F16 und H16 leeren (sofern ein Haken gesetzt ist) hat keine Priorität!

Entwicklungsmaßnahmen:
A12 - A17 Inhalte löschen (gleiches für die Zellen C,H,J 12 -17)
A24 - A29 und C24 - C29 kopieren und in A12 - A17 und C24 - C29 einfügen
dann A24 - A29 Inhalte löschen (gleiches für die Zellen C,H,I,J 24 - 29)

Schulungsplan (ausgeblendet):
- einblenden
- nach Spalte C 4 Spalten einfügen
- in Zelle G2 - G7 Wert aus Deckblatt H5 einfügen
- die erste Zeile komplett löschen

Gehaltsanpassung (ausgeblendet):
- einblenden
- nach Spalte C 4 Spalten einfügen
- in Zelle G2 Wert aus Deckblatt H5 einfügen
- die erste Zeile komplett löschen

Danach die beiden Blätter wieder ausblenden und speichern. Hier wäre es super wenn die Datei unter neuem Namen gespeichert werden könnte. Kein muss.
Als Anhang 1x die Ausgangsdatei und 1x das gewünschte Ergebnis.

https://www.herber.de/bbs/user/176755.xlsx
https://www.herber.de/bbs/user/176756.xlsx

Und hier der der Inhalt des aufgezeichneten Makros: Ganz unten steht Danke! :-)

Sub MAG_komplett()
'
' MAG_komplett Makro
'

'
Range("B7:D7").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("C8").Select
Sheets("Entwicklungsmaßnahmen").Select
Range("A12:K17").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=8
Range("A24:G29").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=-20
Range("A12:B12").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=12
Range("A24:K29").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("C29:G29").Select
Sheets("Erläuterungen").Select
Sheets("Schulungsplan").Visible = True
Columns("D:G").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G2").Select
ActiveCell.FormulaR1C1 = "=Deckblatt!R[3]C[1]"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=Deckblatt!R5C[1]"
Selection.AutoFill Destination:=Range("G2:G7"), Type:=xlFillDefault
Range("G2:G7").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
Sheets("Schulungsplan").Select
Sheets("Bemerkungen").Visible = True
Columns("D:G").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G2").Select
ActiveCell.FormulaR1C1 = "=Deckblatt!R[3]C[1]"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=Deckblatt!R5C[1]"
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Sheets("Bemerkungen").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Schulungsplan").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Deckblatt").Select
ActiveWorkbook.Save
End Sub


Vielen lieben Dank!
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
16.04.2025 22:06:32
Piet
Hallo

schau bitte mal ob das von vielen Select bereinigte Makro richtig funktioniert. -- (nicht getestet !!)

mfg Piet

Sub Makro1()

Sheets("Deckblatt").Select
Range("B7").ClearContents

Sheets("Entwicklungsmaßnahmen").Select
Range("A12:A17").ClearContents
Range("C12:C17").ClearContents
Range("H12:J17").ClearContents

Range("A24:A29").Copy
Range("A12:A17").PasteSpecial xlPasteValues, Transpose = True
Range("C24:C29").Copy Range("C24:C29")
Application.CutCopyMode = False

Range("A24:A29").ClearContents
Range("C24:C29").ClearContents
Range("H24:J29").ClearContents

Sheets("Erläuterungen").Select
Sheets("Schulungsplan").Visible = True
Columns("D:G").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G2").FormulaR1C1 = "=Deckblatt!R5C[1]"
Range("G2").AutoFill Destination:=Range("G2:G7"), Type:=xlFillDefault
Rows("1:1").Delete Shift:=xlUp
Range("A1").Select
Sheets("Schulungsplan").Select
Sheets("Bemerkungen").Visible = True
Columns("D:G").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G2").FormulaR1C1 = "=Deckblatt!R5C[1]"
Rows("1:1").Delete Shift:=xlUp
Sheets("Bemerkungen").Visible = False
Sheets("Schulungsplan").Visible = False
Sheets("Deckblatt").Select
Application.Dialogs(xlDialogSaveAs).Show
End Sub
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
17.04.2025 13:33:07
Matthias
Hallo Piet,
danke für deine Hilfe.
Leider hat es nicht ganz funktioniert.
1. die Zellen auf dem Blatt Entwicklungsmaßnahmen sind verbundene Zellen. Hier müsste ich z.B. den Befehl für jede Spalte einfügen (A12:B12 etc.).
ich habe den Code von dir und mir vereint, damit funktioniert das kopieren, einfügen und löschen auf Blatt Entwicklungsmaßnahmen und ein Teil der Aufgaben auf dem Blatt Schulungsplan.
2. auf dem Blatt Schulungsplan(ausgeblendet) wird der Wert aus Deckblatt H5 nur in G2 eingefügt nicht in Zelle G2 - G7 (nicht so wild)
3. auf dem Blatt Bemerkung(ausgeblendet) wird keiner der 3 Befehle ausgeführt (Spalten hinzufügen, 1.Zeile löschen u. in G2 Deckblatt H5 einfügen).
Diese Befehle muss ich manuell in jeder Datei machen. Es kommt aber dafür auch keine Fehlermeldung...

Ich hatte jetzt auch schon versucht 2 Makros nacheinander auszuführen, leider auch ohne Erfolg.
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
17.04.2025 19:51:23
Piet
Hallo Matthias

nachdem ich mir deine Beispielkdateien noch mal genauer angeschaut habe her mein verbesserter Code.
In der Tat bereiten die -verbundenen Zellen- immer Trabbel, wenn man es zu flüchtig programmiert.
In deinem Beispiel fehlt allerdings das Sheet "Bemerkungen"! Ich habe ein kopiertes Sheet eingefügt.
Ich lade dir zwei Beispieldateien hoch. Die zweite Datei enthält nur einen Button und das Makro.
https://www.herber.de/bbs/user/176927.xlsm -- https://www.herber.de/bbs/user/176928.xlsm

Die 1. Datei ist deine Musterdatei, aber als xlsm gespeichert wegen dem Makro.
Die zweite Datei dient dazu deine Musterdatei zu öffnen, dazu kannst du Pfad + Datei in Zellen angeben.
Der Vorteil ist, das deine Musterdatei als xlsx gespeichert bleiben kann, weil das Makro sich extern befindet.

Frage: müsste im Schulungsplan nicht auch die Daten bei A2:C6 gelöscht werden??
Oder vom Deckblatt übernommen werden?? Und Warum löscht ihr die Zeile1, die Überschrift???

mfg Piet
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
18.04.2025 08:44:45
Matthias
Hallo Piet,
danke erstmal.

zu deinen Fragen:
1. das Blatt heißt nicht Bemerkung sondern Gehaltsanpassung. Sorry mein Fehler.
2. auf dem ausgeblendeten Blatt Schulungsplan werden die Zellen A2:C6 bereits vom Deckblatt übernommen und müssen nicht gelöscht werden
3. wenn ich alle Dateien mit PowerQuerry zusammenführe habe ich 200x die Überschrift und zusätzlich muss ich 4 Spalten einfügen, deswegen Zeile 1 löschen und Spalten einfügen

Vielleicht kurz zur Info:
in den vergangenen Jahren haben wir diese Gesprächsbögen entweder als Excel, pdf oder in Papierform zurück bekommen. Dann wurde daraus ein Schulungsplan in Excel erstellt. Dies geschah durch copy / paste oder tatsächlich durch abschreiben und hat ewig gedauert.
Jetzt hatte ich die beiden Blätter zum auswerten eingefügt und ausgeblendet. Dadurch können wir den Plan innerhalb von Minuten erstellen. Dabei habe ich nun wieder Verbesserungspotenzial entdeckt. Das löschen bzw. kopieren bestimmter Bereiche ist notwendig, weil wir im nächsten Jahr diesen Bogen wieder zum ausfüllen zur Verfügung stellen und die geplanten Schulungen nachgehalten werden sollen. Dies wurde in 50% der Fälle in der Vergangenheit nicht gemacht.

Das Einfachste ist es natürlich im Intranet eine neue Vorlage zu hinterlegen, aber dann regen sich wieder alle auf das sie so viel ausfüllen müssen. :-) und es ist nicht sichergestellt, dass alle die neue Vorlage nutzen, was dann wieder zu Problemen in der Auswertung führt....

Wenn ich es richtig verstehe, soll ich den Code aus der Datei mit dem Button kopieren und als Makro speichern und ausführen?

Ich hoffe, das ist nachvollziehbar.

Danke!
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
18.04.2025 09:10:51
Matthias
Hallo Piet,
Makro funktioniert.

Danke!

Tatsächlich hatte ich gestern noch überlegt, ob das ganze auch via PowerQuerry möglich ist. Also im Prinzip alle Dateien zusammenführen, die Daten entsprechend löschen bzw. kopieren und einfügen und dann als einzelne Dateien wieder abspeichern.
Hast du eine Ahnung ob das funktioniert? Das würde mir das öffnen der einzelnen Dateien ersparen...
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
18.04.2025 15:28:49
Piet
Hallo Matthias

Sorry, von PQ habe ich Null Ahnung, habe nie damit gearbeitet, und bin zu alt um mir das noch reinzuziehen.
Wenn du dort Infos haben willst öffnest du am besten einen neuen Thread mit einer gezielten PQ Anfrage.

Daten aus 200 Dateien auslesen geht auch mit Datei öffnen, oder viel schneller mit externer Verknüpfung.
In einem ähnlichen Fall mit zufällig 200 Dateien lese ich die Daten jeder Datei per Formel in ein Hilfssheet ein.
Dann kopiere ich diese Daten als Werte in eine Zusammenfassung. Mit VBA Formeln geht das sehr schnell.

Dazu müsste ich aber genaue Details wissen. Welche Sheets kopiert werden sollen, welche Bereiche, wohin?
Wenn du es mit VBA machen willst lade bitte zwei Dateien hoch, die Quell und Zieldatei mit Vorgabe von Hand.
Die Kollegen werden dir aber zu PQ raten, weil es moderner ist. - Sie sehen VBA als "Krücke" an.

mfg Piet
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
19.04.2025 09:24:29
Matthias
Hallo Piet,
Danke für deine Hilfe. Das passt für mich soweit.
Ich habe aus dem Code das schließen der Mappe gelöscht, so das ich manuell schließe.

Was noch super wäre, wenn beim speichern vor dem ursprünglichen Dateinamen „2026_“ eingefügt würde.
Falls du dazu noch eine Codezeile hättest, wäre das super.

Ansonsten nochmal vielen Dank und frohe Ostern!
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
19.04.2025 17:50:23
Piet
Hallo Matthias

auch kein Problem. Ersetze den xlDialog durch den unteren Code. Damit sollte es klappen.
Grüsse aus Izmir an die Heimat, hier gibt es leider kein Osterfest! Viel Spass beim Eiersuchen.

mfg Piet

mfg Piet
'Application.Dialogs(xlDialogSaveAs).Show

Application.DisplayAlerts = flase
Datei = ThisWorkbook.Name
Datei = Left(Datei, Len(Datei) - 1) & "x"
ActiveWorkbook.SaveAs Filename:="2026_" & Datei, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
22.04.2025 09:30:00
Matthias
Hallo Piet,

habe jetzt die Änderung vorgenommen.
Jetzt wird die Datei leider automatisch als "2026_Personal.XLSx" im Ordner Dokumente gespeichert.
Wenn ich das Hochkomma in der ersten Zeile lösche, öffnet sich der "Speichern unter" Dialog aber ohne vorangestellte "2026_", das kann ich dann hinzufügen. Allerdings wird zusätzlich, jetzt im richtigen Ordner, die Datei "2026_Personal.XLSx" gespeichert. ???

Mir wäre wichtig das der Ursprüngliche Name und Speicherort erhalten bleibt und nur um "2026_" ergänzt wird.

Kannst du helfen???
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
22.04.2025 18:54:35
Piet
Hallo

Probiere es bitte, indem du den Pfad der aktuellen Datei in eine Variable lädst. Hilft dir das weiter??
Dieses Ordner Zeichen "\" vor Datei bitte nicht vergessen!

mfg Piet



Pfad = ThisWorkbook.Path
Datei = ThisWorkbook.Name
Datei = Left(Datei, Len(Datei) - 1) & "x"
ActiveWorkbook.SaveAs Filename:=Pfad & "\2026_" & Datei, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Anzeige
AW: zellen_automatisch_auschneiden_und_einfuegen
16.04.2025 22:15:55
Piet
Nachtrag: --> einfacher dürfte es sein eine -leere Vorlage- zu erstellen, in die man bei Bedarf nur bestimmte Bereiche kopiert, ohne den ganzen Aufwand mit Spalten neu einschieben und Zeilen löschen. Die kann man per xlDialog jedesmal unter neuem Namen speichern.

mfg Piet

Forumthreads zu verwandten Themen

Anzeige