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

Forumthread: kopieren und danach löschen

kopieren und danach löschen
02.12.2017 01:42:10
Rene
Hallo Excelforum,
die Forumsarchivsuche brachte keinen Treffer.Vor kurzen war so eine ähnliche Frage aber da war ich noch nicht an diesem Punkt , es näher zu betrachten.
Aus Platzgründen würde ich gerne immer in der 2.Zeile des Blattes " Eingabe" die Daten eingeben.
Die Zeile geht von A2 bis CR2 und ist vollständig wenn in CD2 ein Wert eingetragen wurde.
Kopiert werden soll die Zeile in ein anderes Blatt in A2 und wenn wieder im Blatt " Eingabe" die Zeile vollständig ist soll es in A3 geschrieben werden usw.
Vielen Dank für Eure Hilfe
LG Rene
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kopieren und danach löschen
02.12.2017 02:10:09
Bernd
Servus,
lade bitte eine Beispieldatei hoch, damit man sieht wo soll wann was wohin...
Grüße Bernd
AW: kopieren und danach löschen
02.12.2017 02:29:02
Rainer
Hallo Rene,

Sub Eingabe_Kopieren()
Dim shEin As Worksheet
Dim shUeb As Worksheet
Dim ARR                 'Array zum kopieren
Dim NoOfCol             'Spaltenzahl zum kopieren
Dim ControlCol          'Kontrollspalte
Dim LastRow             'Letzte Zeile in Übersicht
Set shEin = Sheets(1)   'Eingabe
Set shUeb = Sheets(2)   'Übersicht
NoOfCol = 96            '96 = CR2
ControlCol = 82         '82 = CD2
If shEin.Cells(2, ControlCol)  "" Then
'Bedingung zum kopieren: CD2 (82) ist nicht leer
ARR = shEin.Range(shEin.Cells(2, 1), shEin.Cells(2, NoOfCol))
'Kopiere bis CR2 (96)
LastRow = shUeb.Cells(shUeb.Rows.Count, "A").End(xlUp).Row
'Suche letzte Zeile in Übersicht
shUeb.Range(shUeb.Cells(LastRow + 1, 1), shUeb.Cells(LastRow + 1, NoOfCol)) = ARR
'Füge Daten ein
shEin.Range(shEin.Cells(2, 1), shEin.Cells(2, NoOfCol)).Clear
'Lösche Eingabefelder
Else
MsgBox "Kontrollfeld ist nicht ausgefüllt!"
End If
End Sub
Dieser Text kommt am besten in ein neues VBA-Modul.
Du musst nur noch den Aufruf definieren, z.B. erstelle einen Button und weise das Makro zu.
Das kopieren mit Hilfe des Array "ARR" ist das gleiche als wenn du "Kopieren und Werte einfügen" benutzt. Formate, Formeln, etc. werden ignoriert.
Gruß, Rainer
Anzeige
AW: leider keine VBA Kenntnisse...
02.12.2017 08:02:18
Rene
werde nachher Musterdatei hochladen
LG Rene
AW: leider keine VBA Kenntnisse...
02.12.2017 08:09:12
Hajo_Zi
Hallo Rene,
Warum offen? Soll jemand vorbeikommen und helfen?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: das es nur mit VBA geht, wußte ich nicht , hab
02.12.2017 13:39:02
Rene
https://www.herber.de/bbs/user/118061.xls
aber trotzdem mal ein Beispiel angefügt.Wenn das Löschen der Zeile ein Problem darstellt , würde es auch reichen CD2 zu löschen.
LG Rene
AW: das es nur mit VBA geht, wußte ich nicht , hab
02.12.2017 14:33:53
Werner
Hallo Rene,
du schreibst, dass der Datenbereich von A2 bis CR2 geht.
In deiner Beispielmappe geht der Datenbereich aber von A2 bis CO2. Was ist jetzt richtig?
Dann schreibst du, dass die Daten vollständig sind, wenn Zelle CD2 ausgefüllt ist.
Was heißt hierbei vollständig? Müssen die Zellen von A2 bis CB2 lückenlos befüllt sein?
Gruß Werner
Anzeige
AW: Stimmt, du hast recht ...
03.12.2017 07:40:12
Rene
hab es irgendwie vergessen , daß da noch 3 Codefelder sind , die händisch befüllt werden. Bis CG ist alles Handarbeit danach sind es ein paar zusammenrechnungen .
Zum Thema VBA und Makros. Beides geht nicht mit dem Smartphone Excel Apps .
Vielen Dank für deine Mühe , werde es händisch kopieren und einfügen. Vielleicht gibts ja mal irgendwann Excel für Android mit diesenFunktionen.
Lg Rene
Anzeige
Nächstes mal denn bitte gleich...
03.12.2017 11:25:40
Werner
Hallo Rene,
...schreiben, dass eine Lösung ohne VBA gewünscht/gesucht wird. Dann hätte man sich die ganze Mühe sparen können.
Ein Satz hätte gereicht: Das ist mit Formeln nicht machbar.
Gruß Werner
AW: Nächstes mal denn bitte gleich...
04.12.2017 06:35:55
Rainer
Danke Werner, besser hätte ich es nicht ausdrücken können.
Schade um die Zeit, nur weil es nicht relevant genug erschien darauf hinzuweisen, dass es NICHT um Office 2007 geht, sondern ANDROID.
*kopfschüttel*
Rainer
Anzeige
AW: das es nur mit VBA geht, wußte ich nicht , hab
02.12.2017 15:23:47
Werner
Hallo Rene,
hab jetzt mal ein Makro geschrieben, so wie ich das verstanden habe.
Makro gehört ins CodeModul vom Blatt "Eingabe"
Rechtsklick auf den Blattreiter - Code anzeigen - Code rechts ins Codefenster kopieren
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long
Application.ScreenUpdating = False
If Target.Address(0, 0) = "CD2" Then
If Target  "" Then
If Application.WorksheetFunction.CountBlank(Range("A2:CG2")) = 0 Then
Rows(Target.Row).Copy
With Worksheets("Sammelfeld der Eingaben")
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(loLetzte, 1).PasteSpecial Paste:=xlValues
End With
Application.CutCopyMode = False
Range(Cells(2, 1), Cells(2, 85)).ClearContents
Else
MsgBox "Es sind nicht alle Felder ausgefüllt."
End If
End If
End If
Application.ScreenUpdating = True
End Sub
Code startet bei Eintrag in Zelle CD2
Es wird geprüft, ob alle Felder befüllt sind.
Gruß Werner
Anzeige
;
Anzeige

Infobox / Tutorial

Zeile kopieren und anschließend löschen in Excel


Schritt-für-Schritt-Anleitung

Um Daten aus einer Zeile zu kopieren und anschließend zu löschen, kannst Du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

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

  3. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Eingabe_Kopieren()
       Dim shEin As Worksheet
       Dim shUeb As Worksheet
       Dim ARR                 'Array zum kopieren
       Dim NoOfCol             'Spaltenzahl zum kopieren
       Dim ControlCol          'Kontrollspalte
       Dim LastRow             'Letzte Zeile in Übersicht
    
       Set shEin = Sheets(1)   'Eingabe
       Set shUeb = Sheets(2)   'Übersicht
       NoOfCol = 96            '96 = CR2
       ControlCol = 82         '82 = CD2
    
       If shEin.Cells(2, ControlCol) <> "" Then
           ARR = shEin.Range(shEin.Cells(2, 1), shEin.Cells(2, NoOfCol))
           LastRow = shUeb.Cells(shUeb.Rows.Count, "A").End(xlUp).Row
           shUeb.Range(shUeb.Cells(LastRow + 1, 1), shUeb.Cells(LastRow + 1, NoOfCol)) = ARR
           shEin.Range(shEin.Cells(2, 1), shEin.Cells(2, NoOfCol)).Clear
       Else
           MsgBox "Kontrollfeld ist nicht ausgefüllt!"
       End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Füge einen Button hinzu, um das Makro auszuführen: Entwicklertools > Einfügen > Button (Formularsteuerung).

  7. Weise das Makro zu: Wähle das Makro Eingabe_Kopieren aus.

Nun kannst Du die Daten in der Zeile A2 bis CR2 eingeben. Wenn CD2 ausgefüllt ist, klick auf den Button, um die Zeile zu kopieren und anschließend zu löschen.


Häufige Fehler und Lösungen

  • Fehler: "Kontrollfeld ist nicht ausgefüllt!"

    • Lösung: Stelle sicher, dass die Zelle CD2 nicht leer ist, bevor Du das Makro ausführst.
  • Fehler: Die Daten werden nicht im richtigen Blatt eingefügt.

    • Lösung: Überprüfe, ob die richtigen Blattnamen in den Zeilen Set shEin = Sheets(1) und Set shUeb = Sheets(2) eingetragen sind.

Alternative Methoden

Wenn Du keine VBA-Kenntnisse hast, kannst Du die Daten auch manuell kopieren:

  1. Markiere die Daten in A2 bis CR2.
  2. Drücke STRG + C, um die Daten zu kopieren.
  3. Wechsel zum Zielblatt und wähle die Zelle A2.
  4. Drücke STRG + V, um die Daten einzufügen.
  5. Gehe zurück zu "Eingabe" und lösche die Inhalte in A2 bis CR2.

Diese Methode ist zwar nicht automatisiert, funktioniert aber gut, wenn Du nur gelegentlich Daten übertragen möchtest.


Praktische Beispiele

  • Beispiel 1: Du hast eine Liste von Teilnehmern in der Zeile A2 bis CR2 und möchtest diese in ein Übersichtsblatt übertragen. Fülle CD2 aus und klicke auf den Button, um die Daten zu kopieren.

  • Beispiel 2: Wenn Du mehrere Zeilen hast, kannst Du den Code anpassen, um eine Schleife zu implementieren, die auch andere Zeilen kopiert, solange CD2 und die Kontrollzellen gefüllt sind.


Tipps für Profis

  • Nutze Fehlerbehandlung im VBA-Code, um sicherzustellen, dass der Benutzer klare Anweisungen erhält, wenn etwas schiefgeht.
  • Verwende Formeln in den Zielzellen, um automatisch Berechnungen durchzuführen, nachdem die Daten kopiert wurden.
  • Denke daran, regelmäßige Backups Deiner Excel-Dateien zu erstellen, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Frage
Kann ich das Makro auch in älteren Excel-Versionen verwenden?
Antwort: Ja, das Makro sollte in den meisten Excel-Versionen ab 2007 funktionieren.

2. Frage
Was ist der Unterschied zwischen Kopieren und „Werte einfügen“ in Excel?
Antwort: „Werte einfügen“ entfernt alle Formate und Formeln, sodass nur die reinen Daten übertragen werden, was in vielen Fällen gewünscht ist, um Datenverfälschungen zu vermeiden.

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