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

Forumthread: VBA - spalte nach wert durchsuchen zeile einfügen

VBA - spalte nach wert durchsuchen zeile einfügen
01.10.2008 18:03:00
Dieter
Hallo,
ich versuche schon den ganzen Tag erfolglos eine Lösung für folgendes Problem zu finden - ich hoffe hier kann mir einer der Spezialisten Rat geben:
Ich habe eine Tabelle, in der in Spalte A einzelne Zellen mit x markiert sind. Ich möchte nun ein Makro bauen, das in der Spalte A nach diesen "x" sucht und in der jeweiligen Zeile eine neue Zeile einfügt (Die Zeile mit dem x wird dabei nach unten verschoben). Diese markierten Zeilen kommen mehrmals in der Spalte A vor. bisher bin ich mit der folgenden Lösung soweit gekommen, daß das erste X gefunden wird, allerdings fügt das Makro unendlich Zeilen ein.....

Sub test()
Dim finden, Zelle As Range
Set finden = Range("A1:A600")
For Each Zelle In finden
If Zelle.Text = "x" Then
Range(Zelle.Row & ":" & Zelle.Row).Insert Shift:=xlDown
End If
Next
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - spalte nach wert durchsuchen zeile einfügen
01.10.2008 18:11:50
Tino
Hallo,
vielleicht geht es so.
Sub test()
Dim lngRow As Long, A As Long
'ab der letzten Zelle in A 
'sonst  lngRow = 600 
lngRow = Cells(Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
  For A = lngRow To 1 Step -1
    If Cells(A, 1) = "x" Then
      Rows(Cells(A, 1).Row).Insert Shift:=xlDown
    End If
  Next
Application.ScreenUpdating = True
End Sub


Gruß Tino

Anzeige
AW: VBA - spalte nach wert durchsuchen zeile einfügen
01.10.2008 18:35:13
Dieter
Hallo Tino,
dein makro funktioniert einwandfrei - vielen Dank!
Gruß,
Dieter
;

Forumthreads zu verwandten Themen

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

Zeile in Excel VBA nach Wert in Spalte einfügen


Schritt-für-Schritt-Anleitung

Um in Excel VBA eine Zeile einzufügen, wenn ein bestimmter Wert in einer Spalte gefunden wird, kannst Du folgendes Makro verwenden:

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub WertInSpalteSuchenUndZeileEinfügen()
       Dim lngRow As Long, A As Long
       lngRow = Cells(Rows.Count, "A").End(xlUp).Row
       Application.ScreenUpdating = False
    
       For A = lngRow To 1 Step -1
           If Cells(A, 1) = "x" Then
               Rows(Cells(A, 1).Row).Insert Shift:=xlDown
           End If
       Next A
    
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die Zeilen unter den Zellen mit "x" einzufügen.

Mit diesem Makro kannst Du effizient die Excel-Spalte nach Wert durchsuchen und die gewünschten Zeilen einfügen.


Häufige Fehler und Lösungen

  • Unendliches Einfügen von Zeilen: Wenn Du die Schleife von oben nach unten durchläufst, kann es zu unendlichem Einfügen kommen, da die Zeilen ständig verschoben werden. Verwende daher die Schleife von unten nach oben.

  • Makro reagiert nicht: Stelle sicher, dass Du das Makro korrekt gestartet hast und dass Du die korrekten Berechtigungen für die Ausführung von VBA-Makros in Excel eingestellt hast.


Alternative Methoden

Falls Du keine VBA-Lösung nutzen möchtest, kannst Du auch die folgende Excel-Formel verwenden:

  1. Füge eine Hilfsspalte neben Spalte A ein.

  2. Verwende die Formel in der neuen Spalte, um die Zeilen zu identifizieren, die "x" enthalten. Zum Beispiel:

    =WENN(A1="x";ZELLE("adresse";A1);"")
  3. Filtere dann nach der Hilfsspalte, um die gewünschten Zeilen anzuzeigen und manuell einzufügen.


Praktische Beispiele

Angenommen, Du hast folgende Daten in Spalte A:

A
x
x
x

Nach Ausführung des Makros wird der Bereich so aussehen:

A
x
x
x

Die Zeilen mit "x" wurden korrekt nach unten verschoben.


Tipps für Profis

  • Variablen deklarieren: Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um das Makro robuster zu machen. Zum Beispiel:

    On Error GoTo FehlerHandler
    ' Dein Code hier
    Exit Sub
    FehlerHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Makros automatisieren: Du kannst das Makro an bestimmte Ereignisse binden, wie beispielsweise das Öffnen der Datei oder das Ändern von Zellen in bestimmten Bereichen.


FAQ: Häufige Fragen

1. Wie kann ich das Makro auf andere Spalten anwenden?
Ändere einfach den Bereich Cells(A, 1) auf die gewünschte Spalte, z.B. Cells(A, 2) für Spalte B.

2. Was passiert, wenn mehrere "x" in einer Zeile stehen?
Das Makro wird jede Zeile mit "x" erkennen und darunter eine neue Zeile einfügen. Es ist wichtig, dass Du von unten nach oben durchläufst, um die Reihenfolge nicht zu stören.

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