Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro - Einfügen in nächste leere Zeile

Makro - Einfügen in nächste leere Zeile
22.04.2018 16:42:49
Mario
Hallo
Ich habe ein Makro erstellt, wo ich Daten aus dem Blatt "Rechnung" in das Blatt "Warenausgang" kopieren möchte. Allerdings kopiert es mir immer in die gleiche Zeile und überschreibt die vorherigen Resultate. Ich möchte, dass es mir die Resultate in die nächste leere Zelle einfügt.
Hier das Makro.

Sub Waren_final()
Range("A24:F40").Select
Selection.Copy
Sheets("Warenausgang").Select
Range("A5").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=True, Transpose:=False
Range("H25").Select
Sheets("Rechnung").Select
Range("A24:B40,D24:D40").Select
Range("D24").Activate
Application.CutCopyMode = False
Selection.ClearContents
Range("G35").Select
End Sub

Vielen Dank für die Hilfe...
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro - Einfügen in nächste leere Zeile
22.04.2018 16:46:51
Hajo_Zi
das Forum lebt von Rückmeldung, Dir scheint das unbekannt zu sein.
Darum keine Lösung.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Makro - Einfügen in nächste leere Zeile
22.04.2018 17:05:33
Nepumuk
Hallo Mario,
teste mal:
Public Sub Waren_final()
    Call Worksheets("Rechnung").Range("A24:F40").Copy
    With Worksheets("Warenausgang")
        Call .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial( _
            Paste:=xlPasteValuesAndNumberFormats)
    End With
    Application.CutCopyMode = False
    Worksheets("Rechnung").Range("A24:B40,D24:D40").ClearContents
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro - Einfügen in nächste leere Zeile
22.04.2018 17:52:59
Mario
Hallo Nepumuk
Funktioniert einwandfrei. Vielen Dank :)
Gruss
AW: Makro - Copy-Paste in nächste leere Zelle
22.04.2018 17:23:34
Gerd
Moin
Sub Waren_final()
Dim wsQ As Range: Set wsQ = Worksheets("Rechnung")
Dim wsZ As Range: Set wsZ = Worksheets("Warenausgang")
wsQ.Range("A24:F40").Copy
With wsZ
.Range("A" & Application.Max(5, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)). _
PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With
wsQ.Range("A24:B40,D24:D40").ClearContents
Application.CutCopyMode = False
Set wsQ = Nothing: Set wsZ = Nothing
End Sub
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

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 Einfügen in die nächste leere Zeile


Schritt-für-Schritt-Anleitung

Um ein Excel-VBA-Makro zu erstellen, das Daten in die nächste leere Zeile einfügt, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Sub Waren_final()
       Dim wsQ As Range: Set wsQ = Worksheets("Rechnung")
       Dim wsZ As Range: Set wsZ = Worksheets("Warenausgang")
    
       wsQ.Range("A24:F40").Copy
       With wsZ
           .Range("A" & Application.Max(5, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)). _
           PasteSpecial Paste:=xlPasteValuesAndNumberFormats
       End With
    
       wsQ.Range("A24:B40,D24:D40").ClearContents
       Application.CutCopyMode = False
       Set wsQ = Nothing: Set wsZ = Nothing
    End Sub
  4. Schließe den VBA-Editor und teste das Makro, indem du es im Excel-Fenster ausführst.


Häufige Fehler und Lösungen

  • Fehler: Daten werden in die falsche Zeile kopiert

    • Lösung: Stelle sicher, dass die Zeile, in die du die Daten einfügen möchtest, korrekt ermittelt wird. Verwende die Methode .End(xlUp) um die erste leere Zeile zu finden.
  • Fehler: Das Makro funktioniert nicht

    • Lösung: Überprüfe, ob die Arbeitsblätter "Rechnung" und "Warenausgang" korrekt benannt sind und existieren.

Alternative Methoden

Du kannst auch die Methode Find verwenden, um die erste leere Zeile zu finden und die Daten dorthin zu kopieren. Ein Beispiel:

Sub Waren_final_Alternative()
    Dim wsZ As Worksheet
    Set wsZ = Worksheets("Warenausgang")

    Dim lastRow As Long
    lastRow = wsZ.Cells(wsZ.Rows.Count, 1).End(xlUp).Row + 1

    wsZ.Cells(lastRow, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End Sub

Diese Methode kann nützlich sein, wenn du eine spezifische Spalte anvisierst.


Praktische Beispiele

Wenn du Daten aus der "Rechnung" in die "Warenausgang"-Tabelle kopieren möchtest, kannst du den obigen Code anpassen, um spezifische Bereiche auszuwählen oder nur bestimmte Daten zu kopieren. Hier ist ein Beispiel, wie du nur die Werte ohne Formatierungen kopieren kannst:

Sub Waren_final_Werte()
    Dim wsQ As Worksheet
    Dim wsZ As Worksheet
    Set wsQ = Worksheets("Rechnung")
    Set wsZ = Worksheets("Warenausgang")

    wsQ.Range("A24:F40").Copy
    wsZ.Cells(wsZ.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True Anweisungen, um die Performance des Makros zu verbessern, besonders bei großen Datenmengen.

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Erstelle eine Fehlerbehandlungsroutine, um das Makro robuster zu machen.


FAQ: Häufige Fragen

1. Wie finde ich die erste leere Zeile in einem Arbeitsblatt?
Du kannst die Methode .End(xlUp) verwenden, um die erste leere Zeile zu finden. Beispiel: Cells(Rows.Count, 1).End(xlUp).Row + 1.

2. Was bedeutet xlPasteValuesAndNumberFormats?
Das ist eine Konstante in Excel VBA, die angibt, dass sowohl die Werte als auch die Zahlenformate in die Zielzelle eingefügt werden sollen.

3. Kann ich auch leere Zellen überspringen?
Ja, du kannst die SkipBlanks-Option in der PasteSpecial-Methode verwenden, um leere Zellen zu überspringen.

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