Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bereich einfügen wenn Bedingung erfüllt

Bereich einfügen wenn Bedingung erfüllt
26.03.2009 22:17:38
Mone
Hallo Genies!
Jetzt war ich eine weile mit anderen Dingen beschäftigt und nun kehre ich wieder an meine Excel-Geschichten zurück. Ach wie haben mir die Codes gefehlt :-)
Ich habe mal wieder ein Problemchen für die Tüftler unter euch.
Und zwar folgendes:
Ein Makro soll prüfen, ob in Spalte A (ab A25 nach unten) der Wert grösser 0 ist. Wenn dies der Fall ist, soll diese Zeile kopiert werden und etwas weiter oben eingefügt werden.
Habe schonmal folgendes Makro geschrieben. Dieses aber prüft nur eine einzige Zelle und kopiert die Zeile bzw. den Bereich an die gewünschte Zelle. Kann man den irgendwie anpassen?
Ich danke schonmal von Herzen den Experten. Ihr habt mir schon soooo viel geholfen! Danke Danke Danke

Sub prüfenkopiereneinfügen()
If ActiveSheet.Cells(56, 1).Value >= 0 Then
Range("A56:J56").Select
Selection.Copy
Range("A25").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
End Sub


Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich einfügen wenn Bedingung erfüllt
27.03.2009 08:41:59
Jens
Hallo Mone
Soll die gefundene Zeile immer in Zeile 25 kopiert werden werden, oder soll dann eine Zeile eingefügt werden mit den Werten?
Welche Zeile soll genommen werden, wenn es mehrere Suchergenisse gibt? Die erste gefundene? Die letzte gefundene? Irgendwas dazwischen?
1000 Fragen. Am besten nochmal ganz genau beschreiben, was passieren soll.
Vom Prinzip her in einer Schleife:

Sub prüfenkopiereneinfügen()
Dim LoI As Long
For LoI = 25 To Range("A65536").End(xlUp).Row 'letzte Zelle in Spalte A, die nicht leer ist
If ActiveSheet.Cells(LoI, 1).Value >= 0 Then
Rows(LoI).Copy Destination:=Range("A25") 'gefundene Zeile in Zeile 25 kopieren _
b>
Application.CutCopyMode = False
End If
Next
End Sub


Gruß aus dem Sauerland
Jens

Anzeige
AW: Bereich einfügen wenn Bedingung erfüllt
27.03.2009 18:54:27
Mone
Hallo Jens,
danke für deine Antwort. Dein code funktioniert irgendwie nicht. Aber ich habe gestern noch lange im Archiv gesucht....man was man da alles für gute Sachen findet :-)
Ich bin auch für mein Problem fündig geworden. Habe folgenden Code auf meine Bedürfnisse angepasst und er funktioniert tadellos. Hier mal das Makro:
Der Clou wäre allerdings noch, wenn er beim Einfügen der Daten immer noch eine Leerzeile dazwischen fügen würde. Vielleicht finde ich ja noch was.
Danke dir aber für deine Mühe.

Sub PrüfenundKopieren()
Dim lgQuell As Long, lgZiel As Long
For lgQuell = 54 To Range("A65536").End(xlUp).Row
If Cells(lgQuell, 11).Value > 0 Then
lgZiel = lgZiel + 1
Rows(lgQuell).Copy ActiveSheet.Rows(lgZiel + 23)
End If
Next
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bereich einfügen, wenn Bedingung erfüllt


Schritt-für-Schritt-Anleitung

Um eine Excel-Zeile einzufügen, wenn eine bestimmte Bedingung erfüllt ist, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die Zeilen einfügen möchtest.

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

  3. Füge ein neues Modul ein, indem du mit der rechten Maustaste auf "VBAProject (DeinProjektname)" klickst und "Modul" auswählst.

  4. Kopiere und füge den folgenden Code in das Modul ein:

    Sub PrüfenundKopieren()
       Dim lgQuell As Long, lgZiel As Long
       For lgQuell = 25 To Range("A65536").End(xlUp).Row
           If Cells(lgQuell, 1).Value > 0 Then
               lgZiel = lgZiel + 1
               Rows(lgQuell).Copy ActiveSheet.Rows(lgZiel + 24) ' Hier wird eine Zeile eingefügt
           End If
       Next
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

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

Mit diesem Makro wird die Excel-Zeile eingefügt, wenn die Bedingung erfüllt ist. Du kannst die Zeilen anpassen, um sicherzustellen, dass sie in den gewünschten Bereich eingefügt werden.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Makros in deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Option für Makros.
  • Fehler: Falsche Zeilen werden kopiert.

    • Lösung: Überprüfe die Bedingung im Code. Stelle sicher, dass die richtige Spalte und die richtigen Zeilenreferenzen verwendet werden.

Alternative Methoden

Wenn du eine Excel-Zeile einfügen möchtest, ohne VBA zu verwenden, kannst du auch die FILTER-Funktion in Excel 365 nutzen. Hier ist ein Beispiel:

  1. Setze die Formel in eine Zelle ein:
    =FILTER(A25:J100, A25:A100>0)
  2. Dies zeigt alle Zeilen an, deren Werte in Spalte A größer als 0 sind.

Diese Methode ist besonders nützlich, wenn du keine Programmierung nutzen möchtest.


Praktische Beispiele

Beispiel 1: Werte kopieren, wenn Bedingung erfüllt

Angenommen, du möchtest alle Zeilen, in denen der Wert in Spalte A größer als 10 ist, in einen anderen Bereich kopieren. Der VBA-Code könnte so aussehen:

Sub WerteKopieren()
    Dim i As Long
    Dim ZielRow As Long
    ZielRow = 1 ' Zielbeginn in Zeile 1
    For i = 1 To 100 ' Anpassen an den Bereich
        If Cells(i, 1).Value > 10 Then
            Rows(i).Copy Destination:=Rows(ZielRow)
            ZielRow = ZielRow + 1
        End If
    Next i
End Sub

Beispiel 2: Zeilen mit Leerzeile dazwischen einfügen

Wenn du beim Einfügen der Zeilen eine Leerzeile dazwischen haben möchtest, kannst du den Zielrow um 2 erhöhen:

ActiveSheet.Rows(lgZiel + 24).Insert Shift:=xlDown

Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True Befehle, um die Ausführungsgeschwindigkeit zu erhöhen, wenn du viele Zeilen bearbeitest.
  • Du kannst auch die Application.Calculation = xlCalculationManual und Application.Calculation = xlCalculationAutomatic Befehle verwenden, um die Berechnungen während der Makroausführung zu deaktivieren.

FAQ: Häufige Fragen

1. Wie kann ich die Zeile einfügen, wenn die Bedingung erfüllt ist, ohne VBA zu verwenden? Du kannst die FILTER-Funktion in Excel 365 nutzen, um die gewünschten Zeilen anzuzeigen, ohne ein Makro zu schreiben.

2. Was mache ich, wenn mein Makro nicht funktioniert? Überprüfe, ob die Makros in deinen Excel-Einstellungen aktiviert sind und ob die richtige Syntax im VBA-Code verwendet wird. Teste auch, ob die Zellreferenzen korrekt sind.

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