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

Forumthread: zellen kopieren wenn wert in bestimmter zelle

zellen kopieren wenn wert in bestimmter zelle
Andreas
hallo zusammen
im jeweils aktuellen tabellenblatt möchte ich bestimmte zellen kopieren wenn in der zelle B39 ein wert steht. danach soll die prozedur prüfen ob in der zelle B40 ein wert steht. wenn ja, sollen wieder bestimmte zellen kopiert werden.
die kopien sollen jeweils untereinander ins tabellenblatt "Auflistung" erfolgen.
in der recherche habe ich leider nichts passendes gefunden.
kann mir jemand einen tipp geben?
vielen dank
andreas
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
So könnte der Code aussehen!
03.09.2009 17:47:27
Backowe

Sub Kopieren()
Dim Zelle As Range
With ActiveSheet
For Each Zelle In .Range("B2:B" & .Cells(.Rows.Count, "B").End(xlUp).Row)
If Zelle  "" Then
Zelle.Copy _
Destination:=Sheets("Auflistung").Range("A" & _
Sheets("Auflistung").Cells(Sheets("Auflistung").Rows.Count, "A").End(xlUp).Row + 1)
End If
Next
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen kopieren, wenn ein Wert in einer bestimmten Zelle steht


Schritt-für-Schritt-Anleitung

Um in Excel eine Zeile zu kopieren, wenn ein Wert in einer bestimmten Zelle steht, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und dein Arbeitsblatt.

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

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

  4. Füge den folgenden Code ein:

    Sub Kopieren()
       Dim Zelle As Range
       With ActiveSheet
           For Each Zelle In .Range("B2:B" & .Cells(.Rows.Count, "B").End(xlUp).Row)
               If Zelle <> "" Then
                   Zelle.Copy _
                   Destination:=Sheets("Auflistung").Range("A" & _
                   Sheets("Auflistung").Cells(Sheets("Auflistung").Rows.Count, "A").End(xlUp).Row + 1)
               End If
           Next
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.

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

Damit werden alle Zellen in der Spalte B kopiert, wenn sie nicht leer sind.


Häufige Fehler und Lösungen

  • Fehler: "Zielbereich ist ungültig."

    • Lösung: Stelle sicher, dass das Arbeitsblatt „Auflistung“ existiert. Überprüfe auch, ob die Zielzelle korrekt angegeben ist.
  • Fehler: Nichts wird kopiert.

    • Lösung: Überprüfe, ob in der Spalte B tatsächlich Werte stehen. Der Code kopiert nur, wenn die Zelle nicht leer ist.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch die Filterfunktion von Excel nutzen:

  1. Markiere die gesamte Tabelle.
  2. Gehe zu Daten und wähle Filter aus.
  3. Setze einen Filter auf die Spalte B, um nur die Zeilen mit Werten anzuzeigen.
  4. Kopiere die gefilterten Zeilen und füge sie in dein Zielblatt „Auflistung“ ein.

Diese Methode erfordert allerdings manuelles Eingreifen und ist nicht so automatisiert wie die VBA-Lösung.


Praktische Beispiele

Angenommen, du hast eine Liste mit Namen und möchtest alle Namen kopieren, wenn in der Zelle B39 ein Wert steht. Du kannst den oben genannten VBA-Code anpassen, um gezielt auf B39 und B40 zu prüfen:

Sub KopierenWennWertInZelle()
    If Range("B39").Value <> "" Then
        ' Hier wird die Kopierprozedur gestartet
    End If
    If Range("B40").Value <> "" Then
        ' Hier wird die Kopierprozedur für B40 gestartet
    End If
End Sub

Tipps für Profis

  • Nutze Variablen: Definiere Variablen für die Quell- und Zielblätter, um deinen Code flexibler zu gestalten.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler abzufangen.

  • Optimiere dein VBA-Skript: Vermeide unnötige Berechnungen innerhalb von Schleifen, indem du die Werte in ein Array lädst und dann nur einmal kopierst.


FAQ: Häufige Fragen

1. Wie kann ich die Zeile kopieren, wenn eine Zelle ein bestimmtes Wort enthält?
Du kannst den Code anpassen, indem du eine zusätzliche If-Bedingung hinzufügst, die prüft, ob die Zelle das gewünschte Wort enthält. Beispiel:

If InStr(Zelle.Value, "deinWort") > 0 Then
    ' Kopiere die Zeile
End If

2. Kann ich diesen Code in Excel für Mac verwenden?
Ja, VBA ist auch in Excel für Mac verfügbar. Die Schritte sind ähnlich, jedoch kann die Tastenkombination für den VBA-Editor leicht abweichen.

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