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

Forumthread: Zeile kopieren wenn Wert in Zelle

Zeile kopieren wenn Wert in Zelle
27.03.2013 15:48:27
Hans
Hallo,
ich habe aus dem Forum folgenden Code um die Zeilen zu kopieren wenn in der jeweiligen Zelle ein bestimmter Wert vorhanden ist.
Im Bsp ist ein "X" als Suchwert angegeben.
Ich möchte jetzt alle Zeile kopieren bei denen der Wert >99 ist. Wenn ich statt "X" ">99" eingebe wird allerdings nichts kopiert.
Kann mir jemand einen Tipp geben?
VG Hans
Sub Copy_x()
Dim i As Long, suchCol As Long
Dim strSearch As String
Dim srcWks As Worksheet, tarWks As Worksheet
'Tabellennamen anpassen
'srcWks wo gesucht werden soll
Set srcWks = Worksheets("Tabelle1")
'tarWks wo hinkopiert werden soll
Set tarWks = Worksheets("Tabelle2")
'8 = Spalte H
suchCol = 8
'strSearch = was gesucht werden soll
strSearch = "X"
With srcWks
For i = 1 To .Cells(Rows.Count, suchCol).End(xlUp).Row
If .Cells(i, suchCol).Text = strSearch Then
Rows(i).Copy Destination:=tarWks.Cells(tarWks.Cells(Rows.Count, 1).End(xlUp). _
Row + 1, 1)
End If
Next i
End With
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile kopieren wenn Wert in Zelle
27.03.2013 16:03:27
hary
Hallo hans
">99" heisst du suchst nach diesem String. Gehe mal davon aus das in suchCol Zahlen stehen.
Dim strSearch As long
strSearch = 99
If .Cells(i, suchCol).Value > strSearch Then

gruss hary

AW: Zeile kopieren wenn Wert in Zelle
27.03.2013 16:08:40
Hans
Hallo Hary,
besten Dank funktioniert einwandfrei.
VG Hans
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeile kopieren, wenn Wert in Zelle


Schritt-für-Schritt-Anleitung

Um in Excel eine Zeile zu kopieren, wenn ein bestimmter Wert in einer Zelle vorhanden ist, kannst du den folgenden VBA-Code verwenden. Dieser Code wurde im Forum von Hans und Hary diskutiert und angepasst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub Copy_Value()
    Dim i As Long, suchCol As Long
    Dim strSearch As Long
    Dim srcWks As Worksheet, tarWks As Worksheet

    'Tabellennamen anpassen
    Set srcWks = Worksheets("Tabelle1") 'Wo gesucht werden soll
    Set tarWks = Worksheets("Tabelle2") 'Wo hinkopiert werden soll

    '8 = Spalte H
    suchCol = 8
    strSearch = 99 'Suchwert anpassen

    With srcWks
        For i = 1 To .Cells(Rows.Count, suchCol).End(xlUp).Row
            If .Cells(i, suchCol).Value > strSearch Then
                Rows(i).Copy Destination:=tarWks.Cells(tarWks.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
            End If
        Next i
    End With
End Sub
  1. Passe den strSearch-Wert nach Bedarf an. In diesem Beispiel wird nach Werten größer als 99 gesucht.
  2. Schließe den VBA-Editor und führe das Makro aus, um die Zeilen zu kopieren.

Häufige Fehler und Lösungen

  • Fehler: Nichts wird kopiert

    • Stelle sicher, dass du den strSearch-Wert als Zahl definiert hast, wie im Beispiel gezeigt (Dim strSearch As Long). Wenn du "X" verwendest, wird nach dem String gesucht, nicht nach einer Zahl.
  • Fehler: Falsche Spalte angegeben

    • Überprüfe die suchCol-Variable. In diesem Beispiel ist es die Spalte H (8). Stelle sicher, dass die Daten dort vorhanden sind.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch einen Filter in Excel verwenden:

  1. Wähle die Daten aus, die du filtern möchtest.
  2. Gehe zu Daten > Filter.
  3. Klicke auf den Dropdown-Pfeil in der Spaltenüberschrift und wähle Zahlenfilter > Größer als....
  4. Gib den Wert (z.B. 99) ein und klicke auf OK.
  5. Kopiere die gefilterten Zeilen und füge sie in ein anderes Arbeitsblatt ein.

Praktische Beispiele

Angenommen, in Tabelle1 befinden sich in Spalte H folgende Werte:

A B C ... H
1 ... ... ... 50
2 ... ... ... 120
3 ... ... ... 80
4 ... ... ... 150

Wenn du das Makro ausführst, werden die Zeilen mit den Werten 120 und 150 in Tabelle2 kopiert.


Tipps für Profis

  • Experimentiere mit anderen Bedingungen im If-Statement, z.B. >=, <= oder =, um verschiedene Werte zu filtern.
  • Du kannst auch mehrere Spalten gleichzeitig prüfen, indem du zusätzliche If-Bedingungen hinzufügst.
  • Speichere deine Arbeitsmappe regelmäßig, bevor du Makros ausführst, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Werte verwenden? Ja, passe einfach den strSearch-Wert im Code an, um nach anderen Zahlen oder Bedingungen zu suchen.

2. Ist es möglich, mehrere Kriterien zu verwenden? Ja, du kannst mehrere If-Bedingungen kombinieren, um komplexere Filter zu erstellen, z.B. If .Cells(i, suchCol).Value > 99 And .Cells(i, 1).Value = "Beispiel".

3. Funktioniert das auch in Excel Online? Der VBA-Code funktioniert nur in der Desktop-Version von Excel. In Excel Online kannst du keine VBA-Makros ausführen.

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