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

Nur die ausgefüllten Zellen kopieren und einfügen

Forumthread: Nur die ausgefüllten Zellen kopieren und einfügen

Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 10:58:18
Johannes

Moin Moin hier im Forum,
ich bin mir sicher das es dieses Porblem schon thematisiert worden ist, leider kann ich es nach 2 Stunden Suche immer noch nicht finden :-/
Ich möchte gerne aus dem Bereich B2:B100 alle ausgefüllten Zellen kopieren und in den Bereich C2:C100 einfügen. Also: wenn B2 = leer dann nichts mit C2 machen. Wenn B2 <> leer dann diesen Wert in C2 eintragen. Exceltechnisch bekomme ich das hin, ich benötige aber ein Makro/VBA hierfür da ich die Werte nur per Auslösen einer Schaltfläche ändern möchte.
Hat jemand eine Idee wo ich ein ähnliches Problem finde oder ne Lösung für mich?
Herzlichen Dank
Beste Grüße
Hannes

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:06:09
Hajo_Zi
Hallo Hannes,
warum nicht Formel?
=Wenn(B2<>"";B2;"")
Gruß Hajo

AW: Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:06:10
hary
Moin
Code in den Code eines ActiveX Buttons.
Dim i As Long
Dim zeile As Long
zeile = 2
Cells(2, 3).Resize(99, 1).ClearContents 'erst loeschen
For i = 2 To 100
If Cells(i, 2) <> "" Then
Cells(zeile, 3).Value = Cells(i, 2).Value
zeile = zeile + 1
End If
Next

gruss hary

Anzeige
AW: Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:18:05
Johannes
Danke für die Schnelle Antwort,
leider nicht die Lösung :-)
beispiel:
In Spalte A steht der Artikel, in Spalte C steht der dazugehörige Einzelpreise. In Spalte B trage ich jetzt den NEUEN Einzelpreis ein. Jetzt möchte ich, dass der Wert in Spalte C überschrieben wird, aber nur der neue Preis, die anderen Preise sollen natürlich erhalten bleiben.
Sorry, habe ich mich verständlich genug ausgedrückt?!?

Anzeige
AW: Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:28:43
Claus
Bestimmt hilft bissle abspecken:
Dim i As Long
zeile = 2
For i = 2 To 100
If Cells(i, 2) <> "" Then
Cells(i, 3).Value = Cells(i, 2).Value
End If
Next

AW: Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:30:44
Johannes
Sehr gut, genau das habe ich benötigt!
Vielen Dank!!!

AW: Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:34:58
Claus
Bitte, dabei habe ich von VBA Programmierung fast keine Ahnung... aber ich hab irgendwie erkannt, was der liebe hary zu viel interpretiert hatte... und das gefühlsmässig rausgeworfen. Cool oder? Und sorry hary, dass ich in deinem Code rumpfusche, das war so ne Art nicht steuerbarer Reflex ;-)

Anzeige
AW: Nur die ausgefüllten Zellen kopieren und einfügen
30.06.2014 11:32:10
hary
Moin
Dann in den Code der Tabelle.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B2:B100")) Is Nothing Then
Target.Offset(, 1) = Target
End If
End Sub

gruss hary

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nur die ausgefüllten Zellen kopieren und einfügen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nur die gefüllten Zellen zu kopieren und in einen anderen Bereich einzufügen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  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 und füge den folgenden Code in das Modul ein:

    Sub NurGefüllteZellenKopieren()
       Dim i As Long
       Dim zeile As Long
       zeile = 2
       Cells(2, 3).Resize(99, 1).ClearContents ' Bereich C2:C100 leeren
       For i = 2 To 100
           If Cells(i, 2) <> "" Then
               Cells(zeile, 3).Value = Cells(i, 2).Value
               zeile = zeile + 1
           End If
       Next i
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Dokument.

  5. Füge einen ActiveX-Button hinzu, um das Makro auszuführen.

  6. Weisen dem Button das Makro NurGefüllteZellenKopieren zu.

Jetzt kannst du den Button klicken, und nur die ausgefüllten Zellen aus dem Bereich B2:B100 werden in den Bereich C2:C100 eingefügt.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Überprüfe die Sicherheitsstufe in den Excel-Optionen.
  • Fehler: Falsche Zellen werden kopiert.

    • Lösung: Überprüfe, ob der Bereich in der Schleife korrekt definiert ist. Achte darauf, dass die Indizes in der Schleife mit deinem Datenbereich übereinstimmen.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch eine Formel einsetzen. In Zelle C2 kannst du folgende Formel verwenden:

=Wenn(B2<>"";B2;"")

Ziehen die Formel dann bis C100. Diese Methode funktioniert jedoch nicht für das Überschreiben bestehender Werte in Spalte C, sondern nur für die Anzeige der neuen Werte.


Praktische Beispiele

Angenommen, du hast in Spalte B verschiedene Einzelpreise eingetragen, und möchtest diese nur in Spalte C kopieren, wenn sie ausgefüllt sind. Mit dem oben angegebenen VBA-Skript wird dies effizient erledigt.

So könnte deine Tabelle aussehen:

A B C
Artikel 1 10,00 €
Artikel 2
Artikel 3 15,00 €

Nach Ausführung des Makros wird der Inhalt in Spalte C wie folgt aussehen:

A B C
Artikel 1 10,00 € 10,00 €
Artikel 2
Artikel 3 15,00 € 15,00 €

Tipps für Profis

  • Du kannst den Code erweitern, um zusätzliche Bedingungen hinzuzufügen, wie z.B. das Überprüfen von bestimmten Werten oder das Kopieren in verschiedene Spalten.
  • Experimentiere mit der Worksheet_Change-Ereignisprozedur, um Änderungen in Echtzeit zu erfassen und automatisch zu aktualisieren, wenn du Daten in Spalte B eingibst.

FAQ: Häufige Fragen

1. Frage Wie kann ich das Makro automatisch ausführen lassen, wenn ich eine Zelle ändere?

Antwort: Du kannst das Worksheet_Change-Ereignis verwenden. Füge den folgenden Code in das Blattmodul ein:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B2:B100")) Is Nothing Then
        Target.Offset(, 1).Value = Target.Value
    End If
End Sub

2. Frage Kann ich das Skript auch für andere Bereiche anpassen?

Antwort: Ja, du musst nur die Zellreferenzen im Code anpassen, um die gewünschten Bereiche zu berücksichtigen.

Mit diesen Anleitungen und Beispielen kannst du in Excel nur die gefüllten Zellen kopieren und einfügen, ganz nach deinen Bedürfnissen!

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