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

Forumthread: Makro alle Zeilen mit x in Spalte kopieren

Makro alle Zeilen mit x in Spalte kopieren
17.11.2005 15:40:43
Rebecca
Hallo liebe Excelhelfer,
habe noch ein Problem, und möchte euch
um eure Hilfe bitten.
Wie übertrage (kopiere) ich alle Zeilen eines Blattes
in denen in Spalte A zB ein x steht.Und kann das in nachstehendem Makro
eingebaut werden?
Dim rng As Range
Dim lngE As Long
Set rng = Sheets("Einzahlungen").Range("A6:M45")
With Sheets("Jahresbeträge")
lngE = .Range("A65536").End(xlUp).Row + 1
rng.Copy
.Cells(lngE, 1).PasteSpecial Paste:=xlPasteValues
.Cells(lngE, 1).PasteSpecial Paste:=xlPasteFormats
' nur Werte und Formatierung
End With
End Sub
Herzlichen Dank, Rebecca
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro alle Zeilen mit x in Spalte kopieren
19.11.2005 04:10:39
Luc:-?
Hallo Rebecca,
hier mal auf die Schnelle und ungetestet:

Sub XZeileEinfügen()
Dim rng As Range, i as long, j as long
With Sheets("alfa")
For i=1 To 65536
If .Cells(i,1).Value="x" then
.Range(.Cells(i,1),.Cells(i,256)).Copy
j=j+1
With Sheets("beta").Cells(j, 1)
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
End If
Next i
End With
End Sub

Könnte für ein Ganzes Blatt zu langsam sein, dann auf die nötige Zeilenzahl einschränken. Ansonsten gibt es auch noch andere Lösungsmöglichkeiten.
In dein Makro lässt sich das einbauen falls die "x" in Spalte A des Blattes "Einzahlungen" ("alfa") stehen. Du müsstest dann For i=6 To 45 schreiben und j mit der Nr der Zeile vor der 1.Einfügezeile in "Einzahlungen" ("beta") initiieren (j=Nr).
Gruß Luc :-?
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Kopieren aller Zeilen mit "x" in Spalte A


Schritt-für-Schritt-Anleitung

Um ein Makro zu erstellen, das alle Zeilen mit einem "x" in Spalte A kopiert, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen. Diese Anleitung setzt voraus, dass du mit Excel 2016 oder einer neueren Version arbeitest.

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du das Makro erstellen möchtest.

  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 XZeileEinfügen()
       Dim rng As Range, i As Long, j As Long
       With Sheets("Einzahlungen") ' Hier den Namen des Quellblattes anpassen
           For i = 6 To 45 ' Bereich anpassen
               If .Cells(i, 1).Value = "x" Then
                   .Range(.Cells(i, 1), .Cells(i, 256)).Copy
                   j = j + 1
                   With Sheets("Jahresbeträge").Cells(j, 1) ' Zielblatt
                       .PasteSpecial Paste:=xlPasteValues
                       .PasteSpecial Paste:=xlPasteFormats
                   End With
               End If
           Next i
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, indem du ALT + F8 drückst und das Makro auswählst.


Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004: Anwendung oder Objekt definieren“

    • Lösung: Überprüfe, ob die Blätter „Einzahlungen“ und „Jahresbeträge“ tatsächlich existieren und keine Tippfehler in den Blattnamen sind.
  • Fehler: Nichts wird kopiert

    • Lösung: Stelle sicher, dass in den Zellen der Spalte A tatsächlich „x“ steht und dass du den richtigen Zellbereich in der Schleife angibst.

Alternative Methoden

Falls du kein Makro verwenden möchtest, kannst du auch die Filterfunktion in Excel nutzen:

  1. Wähle die gesamte Tabelle aus.
  2. Gehe zu Daten > Filtern.
  3. Klicke auf den Dropdown-Pfeil in Spalte A.
  4. Wähle nur „x“ aus und klicke auf „OK“.
  5. Kopiere die gefilterten Zeilen und füge sie in ein anderes Blatt ein.

Praktische Beispiele

Wenn du beispielsweise ein Arbeitsblatt mit den folgenden Daten hast:

A B C
x 1 2
y 3 4
x 5 6

Das Makro wird die Zeilen mit "x" in Spalte A (also die erste und dritte Zeile) in das Zielblatt „Jahresbeträge“ kopieren.


Tipps für Profis

  • Verwende die With-Anweisung, um deinen Code effizienter zu gestalten, indem du redundante Verweise auf Objekte vermeidest.
  • Optimiere die Schleife, indem du die Anzahl der überprüften Zeilen begrenzt, um die Ausführungsgeschwindigkeit zu erhöhen, besonders bei großen Datenmengen.
  • Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um eine andere Spalte zu überprüfen?
Du kannst die Zahl 1 in .Cells(i, 1).Value durch die entsprechende Spaltennummer ersetzen (z.B. 2 für Spalte B).

2. Was passiert, wenn im Zielblatt bereits Daten stehen?
Das Makro fügt die kopierten Daten unter den bestehenden Daten im Zielblatt ein. Achte darauf, dass genug Platz vorhanden ist, um Überschreibungen zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige