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

Kopieren und einfügen wenn Zelle leer

Forumthread: Kopieren und einfügen wenn Zelle leer

Kopieren und einfügen wenn Zelle leer
25.05.2003 15:35:21
Steffen
Hallo

Ich habe schon einige Makros probiert die aber alle nicht das gemacht haben was sie sollten. Das größte Problem war das die Makros mir nicht die Werte kopiert haben sondern die Formeln :-( die ich gar nicht will ++grummel++

Ich möchte aus Tabellenblatt 1 den Bereich G18:G53 über ein Makro kopiert haben und in das Tabellenblatt 2 in Spalte A eingefügt haben. Dabei soll immer die nächste frei Zelle die nächsten Datensätze erhalten so das nichts überschrieben wird.

Also so:

A1
-------
Wert#1
Wert#2
Wert#3
immer
alles
unter
einander

Ach ja was super wäre ist wenn das Makro den Bereich G18:G53 ohne leere Zellen mitkopiert. Wenn das nicht geht muß ich mir was anderes einfallen lassen damit ich das dann sortiert bekomme.

Schon mal heftigen Dank an alle die helfen können ;-)

Gruß
Steffen


Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 16:13:20
KlausL

Hallo Steffen,
so sollte es funktionieren

Sub Transfer()
Sheets("Tabelle1").Select
Range("g18", "G53").Select
Selection.sort Key1:=Range("G18"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
If IsEmpty(Cells(65536, 1)) _
Then Cells(65536, 1).End(xlUp).Select _
Else Cells(65536, 1).Select
a = (ActiveCell.Column)
b = (ActiveCell.Row)
MsgBox b & a
Cells(b + 1, 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub

Gruß KlausL

Anzeige
Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 16:36:01
Steffen

Habs gerade versucht und da kommt dann eine MSGBOX im Tabellenblatt2 mit dem Fehler 400. In dem Tabellenblatt steht dann nix drinn :-(

Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 16:46:50
Steffen


Funktioniert doch :-) hab es nicht ins Modul kopiert gehabt. Was ich aber nicht gebrauchen kann ist die MsgBox die Ansicht soll auf dem Tabellenblatt 1 bleiben.

Wenn du das noch rausfummeln könntest würde ich mich freuen !

Danke

Steffen

Anzeige
Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 16:47:59
KlausL

Sorry!!
Bitte die Zeile MsgBox... löschen. (4.Zeile von unten)
Gruß KlausL

Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 16:52:44
KlausL

Unsere gegenseitigen Mitteilungen haben sich überschnitten.

Sub Transfer()
Application.ScreenUpdating = False
Sheets("Tabelle1").Select
Range("g18", "G53").Select
Selection.Sort Key1:=Range("G18"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
If IsEmpty(Cells(65536, 1)) _
Then Cells(65536, 1).End(xlUp).Select _
Else Cells(65536, 1).Select
a = (ActiveCell.Column)
b = (ActiveCell.Row)
Cells(b + 1, 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.ScreenUpdating = True
Sheets("Tabelle1").Select
End Sub

Gruß KlausL

Anzeige
Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 17:05:23
Steffen


Danke Klaus

funktioniert 1A ++freu :-)++ hab da schon wochenlang gesucht um das hinzubekommen. Was mich interressiert woher weißt du das alles ich möchte mich auch ein wenig weiterbilden.

Besten Dank für die Formel

Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 18:23:09
KlausL

Hallo Steffen,
das ist eine gute Frage.
Angefangen habe ich mit damit, aufgezeichnete Makros zu interpretieren. Viele Infos habe ich mir aus dem Forum geholt, da oftmals Probleme besprochen wurden, die auch meine Probleme waren. Ja, und natürlich nicht zu vergessen, die vielen Bücher, die es auf dem Markt gibt. Ich denke allerdings auch, dass es kein Patentrezept gibt, wie man sich VBA aneignet, jeder sollte den für ihn sinnvollsten Weg einschlagen.
Gruß Klaus


Anzeige
Re: Kopieren und einfügen wenn Zelle leer
25.05.2003 18:56:58
Steffen


aha ich versuche immer etwas über Makro Aufzeichnungen zu lernen nur leider sind meine Probleme zu spezifisch um da etwas über den Makro Rekorde zu erreichen.

Ich habe noch ein Problem vieleicht hast du da auch einen Tip :


Ich habe eine Formel die mir Automatisch mein Dokument ausdruckt wenn die Zahlen 123,1234 und 12345 vorkommen. Das Problem liegt darin das wenn ich die Spalten lösche die das Script überwacht bringt das Script einen Fehler und markiert diese Zeile gelb:

If Target.Value = 123 Or Target = 1234 Or Target = 12345 Then

Ich denke mir mal da fehlt bestimmt eine If Else Anweisung oder sowas oder eine Art schleife oder sowas das die Debug Fehler weg geht.


' column 7 entspricht "Spalte G"
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Target.Value = 123 Or Target = 1234 Or Target = 12345 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, _
Collate:=True
End If
End If
End Sub

Gruß

Steffen

Anzeige
;
Anzeige

Infobox / Tutorial

Kopieren und Einfügen, Wenn Zelle Leer


Schritt-für-Schritt-Anleitung

Um Werte aus einem Bereich in Excel zu kopieren und dabei leere Zellen zu ignorieren, kannst du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, von dem du die Daten kopieren möchtest (z.B. „Tabelle1“).

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

  3. Klicke im Menü auf „Einfügen“ und wähle „Modul“.

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

    Sub Transfer()
       Application.ScreenUpdating = False
       Sheets("Tabelle1").Select
       Range("G18:G53").Select
       Selection.Copy
       Sheets("Tabelle2").Select
       If IsEmpty(Cells(65536, 1)) Then
           Cells(65536, 1).End(xlUp).Select
       Else
           Cells(65536, 1).Select
       End If
       a = (ActiveCell.Column)
       b = (ActiveCell.Row)
       Cells(b + 1, 1).Select
       Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
       False, Transpose:=False
       Application.ScreenUpdating = True
       Sheets("Tabelle1").Select
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, um die Werte ohne leere Zellen in „Tabelle2“ einzufügen.


Häufige Fehler und Lösungen

  • Fehler 400: Dieser Fehler tritt häufig auf, wenn das Makro nicht korrekt im Modul gespeichert wurde. Stelle sicher, dass du den Code im richtigen Modul eingefügt hast.

  • MsgBox erscheint: Wenn eine Meldung (MsgBox) während der Ausführung des Makros angezeigt wird, entferne die Zeile mit MsgBox aus dem Code.

  • Leere Zellen werden kopiert: Stelle sicher, dass die Option SkipBlanks in der PasteSpecial-Methode auf True gesetzt ist, um leere Zellen zu ignorieren.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch Filter verwenden, um leere Zellen zu ignorieren:

  1. Markiere den Datenbereich.
  2. Gehe zu „Daten“ und wähle „Filter“.
  3. Setze einen Filter für die Spalte, um nur die nicht leeren Zellen anzuzeigen.
  4. Kopiere die gefilterten Daten und füge sie in das gewünschte Tabellenblatt ein.

Praktische Beispiele

Angenommen, du hast die folgenden Werte in „Tabelle1“:

G
1
2
3
4

Nach dem Ausführen des Makros wird „Tabelle2“ folgende Werte enthalten:

A
1
2
3
4

Das Beispiel zeigt, wie du effektiv leer kopieren kannst, indem du nur die gefüllten Zellen überträgst.


Tipps für Profis

  • Makro anpassen: Du kannst das Makro anpassen, um es auf andere Bereiche oder Arbeitsblätter anzuwenden. Ändere einfach die Bereiche in Range("G18:G53") und die Blattnamen entsprechend.

  • Tastenkombination zuweisen: Weise dem Makro eine Tastenkombination zu, um es schneller auszuführen. Gehe dazu auf „Entwicklertools“ > „Makros“, wähle dein Makro aus und klicke auf „Optionen“.


FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um andere Bereiche zu kopieren?
Du kannst die Zeile Range("G18:G53") ändern, um den gewünschten Bereich auszuwählen.

2. Was passiert, wenn ich das Makro in einer anderen Excel-Version ausführe?
Das Makro sollte in den meisten modernen Excel-Versionen funktionieren. Achte jedoch darauf, dass die Benutzeroberfläche und einige Funktionen in älteren Versionen abweichen können.

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