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

Wenn Zelle leer dann Wert kopieren

Forumthread: Wenn Zelle leer dann Wert kopieren

Wenn Zelle leer dann Wert kopieren
17.03.2005 14:23:31
MarryJo
Hallo zusammen,
ich habe 3 Spalten. Die erste ist mit Werten gefüllt, die zweite ist eine komplett leere Spalte und die dritte ist auch mit Werten gefüllt.
Jetzt soll folgendes durch ein Makro geschehen:
Es soll quasi jede Zelle durchsucht werden. Und zwar soll, wenn in der ersten Spalte die Zelle leer ist, der Wert, der in der gleichen Zeile in der dritten Spalte steht links rüber in die leere Spalte gezogen werden. Also er soll nicht kopiert werden, sondern soll komplett rüber.
Wie geht das?
Danke vorab.
Gruss, MarryJo
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle leer dann Wert kopieren
17.03.2005 14:34:52
marcl
Hallo MarryJo,

Sub test()
Range("A1").Select
Do While ActiveCell.Address <> "$A$3000" ' Adresse der ersten leeren Zelle in der Datenreihe
If ActiveCell = "" Then
ActiveCell.Offset(0, 2).Copy
ActiveCell.PasteSpecial
ActiveCell.Offset(0, 2).ClearContents
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Gruß
marcl
Anzeige
AW: Wenn Zelle leer dann Wert kopieren
17.03.2005 14:34:53
marcl
Hallo MarryJo,

Sub test()
Range("A1").Select
Do While ActiveCell.Address <> "$A$3000" ' Adresse der ersten leeren Zelle in der Datenreihe
If ActiveCell = "" Then
ActiveCell.Offset(0, 2).Copy
ActiveCell.PasteSpecial
ActiveCell.Offset(0, 2).ClearContents
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Gruß
marcl
Anzeige
AW: Danke vorab heißt wohl, es kommt...
17.03.2005 14:40:56
Luc
keine Bestätigung der Antworten durch dich! Dann wirst du bald keine mehr bekommen. Du hast die Antworter in deinem letzten Thread auch hängen lassen. Sehr schlechter Stil!
:-((
;
Anzeige
Anzeige

Infobox / Tutorial

Werte von einer Zelle zur anderen verschieben, wenn Zelle leer ist


Schritt-für-Schritt-Anleitung

Um in Excel Werte von einer Zelle in eine andere zu verschieben, wenn die Zelle leer ist, kannst du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:

  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 test()
       Range("A1").Select
       Do While ActiveCell.Address <> "$A$3000" ' Adresse der ersten leeren Zelle in der Datenreihe
           If ActiveCell = "" Then
               ActiveCell.Offset(0, 2).Copy
               ActiveCell.PasteSpecial
               ActiveCell.Offset(0, 2).ClearContents
           End If
           ActiveCell.Offset(1, 0).Select
       Loop
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle test aus der Liste und klicke auf Ausführen.

Das Makro wird nun durch die Zellen der ersten Spalte gehen und die Werte aus der dritten Spalte in die leeren Zellen der ersten Spalte verschieben.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass das Makro für den richtigen Bereich (z.B. A1 bis A3000) ausgeführt wird. Passe die Adresse im Code an, wenn dein Bereich anders ist.
  • Fehler: Werte werden nicht verschoben

    • Lösung: Überprüfe, ob die Zellen in der dritten Spalte tatsächlich Werte enthalten. Wenn die Zellen leer sind, wird nichts verschoben.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Funktion WENN in Excel nutzen, um die Zellen zu überprüfen:

  1. In der Zelle B1 (der leeren Spalte) kannst du die folgende Formel eingeben:

    =WENN(A1="";C1;A1)
  2. Ziehe die Formel nach unten, um sie auf die anderen Zellen anzuwenden. Diese Methode kopiert jedoch nur Werte und verschiebt sie nicht.


Praktische Beispiele

Nehmen wir an, du hast in Spalte A folgende Werte:

  • A1: (leer)
  • A2: (leer)
  • A3: Wert1
  • A4: (leer)
  • A5: Wert2

In Spalte C stehen:

  • C1: WertA
  • C2: WertB
  • C3: WertC
  • C4: WertD
  • C5: WertE

Nach dem Ausführen des Makros wird der Inhalt von Spalte C in die leeren Zellen in Spalte A verschoben, sodass Spalte A wie folgt aussieht:

  • A1: WertA
  • A2: WertB
  • A3: Wert1
  • A4: WertD
  • A5: Wert2

Tipps für Profis

  • Makros speichern: Achte darauf, deine Arbeitsmappe im Format .xlsm zu speichern, um das Makro zu sichern.
  • Fehlerbehandlung hinzufügen: Du kannst im VBA-Code Fehlerbehandlungsroutinen einfügen, um das Makro robuster zu machen und unerwartete Fehler zu vermeiden.
  • Leistungsoptimierung: Wenn du mit großen Datenmengen arbeitest, kannst du die Bildschirmaktualisierung während der Ausführung des Makros deaktivieren:

    Application.ScreenUpdating = False
    ' ... dein Code ...
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um mehr als 3000 Zeilen zu überprüfen? Ja, du kannst die Adresse in der Do While-Schleife anpassen, um mehr Zeilen zu überprüfen (z.B. "$A$10000").

2. Was passiert, wenn die dritte Spalte leer ist? Das Makro wird die Zellen in der ersten Spalte überspringen, da es nur Werte verschiebt, wenn sie vorhanden 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