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

Forumthread: Makro mit Button Zeile ausschneiden und einfügen

Makro mit Button Zeile ausschneiden und einfügen
04.10.2013 11:40:46
Borgi
Hallo Herbers Excel Forum,
ich habe leider (noch) keine Ahnung von VBA-Makros in Excel 2007. Ich kann bisher nur Makros mit dem Recorder aufnehmen, aber die sind mir zu unflexibel.
Ich brauche ein Makro für einen Projekt-Terminplan, was folgende Funktionen erfüllt:
1. Die Zelle die gerade ausgewählt ist, soll dann die ganze Zeile markiert werden.
2. diese gesamte Zeile soll ausgeschnitten werden
3. Die Zeile soll auf das zweite Blatt mit den Namen: Archiv immer an oberster Stelle (Entspricht in meinem Archiv Zeile 16) eingefügt werden.
4. die Zeile, wo ich im Terminplan ausgeschnitten habe, soll gelöscht werden. (da sie ja leer ist)
5. eine leere Zeile soll in etwa bei der 200 Zeile des Terminplans eingefügt werden
Diese Funktionen sollen in der Reihenfolge ablaufen und über einen Button gesteuert werden.
Hier noch mein aufgenommenes Makro mit allen Funktionen:
Sub Makro2()
' Makro2 Makro
Rows("37:37").Select
Selection.Cut
Sheets("Archiv").Select
Rows("16:16").Select
ActiveSheet.Paste
Sheets("Zeitplan").Select
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll Down:=156
Rows("199:199").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveWindow.SmallScroll Down:=-147
End Sub
Ich hoffe ihr könnt mir weiterhelfen.
Gruß und Dank
Borgi

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA : Zeile ausschneiden und einfügen
04.10.2013 12:45:42
NoNet
Hallo Borgi,
dieses Makro ist etwas universeller und kürzer :
Sub Ausschneiden_und_Einfuegen()
ActiveCell.EntireRow.Cut
Sheets("Archiv").Rows("16:16").Insert Shift:=xlDown
ActiveCell.EntireRow.Delete
Rows("200").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Gruß, NoNet
Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
Exceltreffen 11.-13.10.2013 in Duisburg

http://www.exceltreffen.de/index.php?page=230
Schau doch mal rein !

Anzeige
AW: VBA : Zeile ausschneiden und einfügen
04.10.2013 15:41:32
Borgi
Hi NoNet,
Danke das funktioniert super :)
Jetzt hätte ich noch eine Frage, kann man einen 2ten Button mit Makro einfügen, auf dem Archiv-Reiter, dass die markierte Zeile wieder auf den Reiter "Zeitplan" in die erste leere Zeile übertragen wird?
1000 Dank und Gruß
Borgi

Anzeige
Zeile aus ARCHIV nach ZEITPLAN zurück kopieren
04.10.2013 16:11:58
NoNet
Hallo Borgi,
mit folgendem Makro kannst Du die aktuelle Zeile wieder in das Blatt "Zeitplan" zurück kopieren :
Sub Zeile_aus_Archiv_Kopieren()
ActiveCell.EntireRow.Cut
With Sheets("Zeitplan")
.Rows(.Cells(Rows.Count, 1).End(xlUp).Row + 1).Insert Shift:=xlDown
End With
ActiveCell.EntireRow.Delete
End Sub
Voraussetzung für die korrekte Position ist eine befüllte Zelle in Spalte A des Blattes "Zeitplan !"
Salut, NoNet

Anzeige
AW: Zeile aus ARCHIV nach ZEITPLAN zurück kopieren
04.10.2013 16:52:37
Borgi
Vielen Dank! funktioniert bestens! :)

AW: Zeile aus ARCHIV nach ZEITPLAN zurück kopieren
07.10.2013 09:21:24
Borgi
Guten Morgen,
es tritt bei mir jetzt der Fehler auf beim Schließen der Datei auf "Bild ist zu groß und wird abgeschnitten." Wenn ich die Datei danach wieder öffnen möchte, ist sie nicht lesbar und muss wiederhergestellt werden.
Nach der Befragung von Google bedeutet die Fehlermeldung, dass der Zwischenspeicher zu "voll" ist. Kann man den "Auschneiden" Befehl nur für die Spalten A-DD anwenden? Damit der Zwischenspeicher nicht so überladen wird.
Gruß
Borgi

Anzeige
AW: Zeile aus ARCHIV nach ZEITPLAN zurück kopieren
08.10.2013 10:43:16
Borgi
Den Fehler mit "Das Bild ist zu Groß und wird abgeschnitten" konnte ich beheben, in dem ich statt "Cut" der Zeile, "Copy" verwende.
Nur leider besteht das andere Probleme weiterhin. Bitte helft mir!
Danke und Gruß
Borgi

AW: Zeile aus ARCHIV nach ZEITPLAN zurück kopieren
08.10.2013 14:43:30
fcs
Hallo Borgi,
den Zwischenspeicher kann man in Excel nach dem Kopieren von Zellen löschen, indem man den CutCopyMode auf False setzt.
Außerdem musst du darauf achten, dass die Grafikobjekte in den Zeilen, die kopiert werden komplett inner halb der Zeilen positioniert sind, sonnst kommt es zu unschönen Effekten beim Einfügen und Verschieben der Zeilen.
Als störend erweist sich auch der Parameter CopyOrigin beim Einfügen einer Leerzeile in Zeile 200.
Irgendwann kommt bei mir die Meldung "Kann Objekt nicht über Seitenrand hinausschieben.
Die Makros sollten also etwa wie folgt aussehen.
Ob dies dein Speichern-Problem bereinigt: ?
mfg
Franz
Sub Ausschneiden_und_Einfuegen()
ActiveCell.EntireRow.Cut
Sheets("Archiv").Rows("16:16").Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveCell.EntireRow.Delete
Rows("200").Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Sub Zeile_aus_Archiv_Kopieren()
ActiveCell.EntireRow.Cut
With Sheets("Zeitplan")
.Rows(.Cells(Rows.Count, 1).End(xlUp).Row + 1).Insert Shift:=xlDown
End With
Application.CutCopyMode = False
ActiveCell.EntireRow.Delete
End Sub

Anzeige
AW: Zeile aus ARCHIV nach ZEITPLAN zurück kopieren
07.10.2013 15:49:37
Borgi
Hallo NoNet, wenn ich die Makros von dir ausführe bekomme ich nach dem normalen Speichern der Datei und wieder Öffnen folgende Fehlermeldungen.
Userbild
Userbild
In der Liste sind teilweise Pfeile zwischen den Zellen einer Zeile. (Terminverschiebungen)
Wenn ich per Hand Ausschneide und wieder Einfüge funktioniert es ohne Probleme und beim neuladen tritt dieser Fehler nicht auf.
Hast du da vielleicht eine Idee woran es liegen kann?
Gruß
Borgi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Ausschneiden und Einfügen von Zeilen in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro zum Ausschneiden und Einfügen von Zeilen in Excel zu erstellen, folge diesen Schritten:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt oder öffne dein bestehendes Projekt.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code ein:

    Sub Ausschneiden_und_Einfuegen()
       ActiveCell.EntireRow.Cut
       Sheets("Archiv").Rows("16:16").Insert Shift:=xlDown
       ActiveCell.EntireRow.Delete
       Rows("200").Insert Shift:=xlDown
       Application.CutCopyMode = False
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Füge einen Button ein, um das Makro auszuführen:

    • Gehe zu Entwicklertools > Einfügen > wähle Button (Formularsteuerung).
    • Zeichne den Button auf deinem Arbeitsblatt und weise das Makro Ausschneiden_und_Einfuegen zu.

Jetzt kannst du die Zeile, die du ausschneiden möchtest, auswählen und dann auf den Button klicken.


Häufige Fehler und Lösungen

  • Fehler: "Das Bild ist zu groß und wird abgeschnitten."

    • Lösung: Reduziere die Anzahl der kopierten Zellen, indem du nur bestimmte Spalten auswählst (z.B. A bis D) oder verwende den Copy-Befehl anstelle von Cut.
  • Fehler beim Speichern der Datei

    • Lösung: Stelle sicher, dass alle grafischen Objekte innerhalb der Zeilen positioniert sind, um Konflikte beim Einfügen zu vermeiden.
  • Zwischenspeicher zu voll

    • Lösung: Setze Application.CutCopyMode = False am Ende deines Makros, um den Zwischenspeicher zu leeren.

Alternative Methoden

Wenn du keine Makros verwenden möchtest, kannst du auch folgende Methoden ausprobieren:

  1. Manuelles Ausschneiden und Einfügen:

    • Wähle die gesamte Zeile aus, drücke Strg + X, gehe zum Zielblatt und drücke Strg + V.
  2. Verwende Google Sheets:

    • In Google Sheets kannst du ebenfalls Buttons einfügen, um ähnliche Funktionen zu realisieren, indem du Google Apps Script verwendest.

Praktische Beispiele

Hier sind einige praktische Beispiele zur Anwendung des Makros:

  • Projekt-Terminplan: Verwende das Makro, um abgeschlossene Aufgaben in ein Archiv zu verschieben.
  • Datenverwaltung: Übertrage Zeilen mit unwichtigen Daten in eine Archiv-Tabelle zur besseren Übersichtlichkeit.

Tipps für Profis

  • Makro anpassen: Du kannst den Code so anpassen, dass er dynamisch die letzte Zeile in deinem Zielblatt findet.
  • Weitere Buttons: Erstelle zusätzliche Buttons für verschiedene Funktionen, wie z.B. das Zurückkopieren von Zeilen aus dem Archiv.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich einen Excel-Button für ein Makro einfügen? Um einen Button einzufügen, gehe zu Entwicklertools, klicke auf Einfügen und wähle den Button aus. Zeichne ihn auf dem Arbeitsblatt und weise das gewünschte Makro zu.

2. Kann ich das Makro in verschiedenen Excel-Versionen verwenden? Ja, das Makro funktioniert in Excel 2007 und neueren Versionen. Achte jedoch darauf, dass die Entwicklertools aktiviert sind.

3. Wie kann ich mehrere Zeilen gleichzeitig ausschneiden und einfügen? Ändere die Zeilenreferenz in deinem Makro, um mehrere Zeilen auszuwählen, z.B. Rows("37:39").Cut.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige