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

Forumthread: Kopieren und Einfügen per VBA aber mit CutCopymode=false

Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 15:42:30
Bastian
Hallo zusammen,
da meine VBA Kenntnisse auf den Makrorecorder beschränkt sind, habe ich nun ein Problem.
Ich habe eine Arbeitsmappe mit dem Tabellenblatt "Zugang einfügen". Dort tragen wir Daten ein und per Button werden diese Daten dann in ein anderes Tabellenblatt (Bestand A oder Bestand B) mit Hilfe von Kopieren und nur die "WERTE" einfügen übertragen. Dieses Makro ist im "Modul 1" zu finden.
Nun habe ich aber noch ein Makro in "DieseArbeitsmappe", dass verhindern soll, dass ein Benutzer mit Ausschneiden und Kopieren arbeiten kann, da mir sonst die Bedingten Formatierungen immer zerschossen werden und sich Zellen falsch markieren.
Von daher muss dieses Makro zwingend drin bleiben!
Leider sind die beiden Makros so nicht kompatibel, denn so funktioniert meine Übertragung in das andere Tabellenblatt auch nicht mehr.
Da mir bewusst ist, dass mein Code der eines "NOOBS" ist, hoffe ich, dass hier jemand eine Idee hat wie man das lösen kann.
https://www.herber.de/bbs/user/133391.xlsm
MfG Bastian
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 16:16:14
Hajo_Zi
Hallo Bastian,
zu der Datei kann man nur schreiben.
Select, Activate usw. ist in VBA zu 99,8% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Der Cursor ist kein Hund, der überall rum geführt werden muss.

Anzeige
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 16:40:57
Bastian
Hi, danke für dein Feedback, dass ist mir klar und ich weiß, dass mein code sch..... ist und das das besser geht, wenn man es denn kann. Deshalb frage ich ja euch. Bin halt leider auf den Makrorecorder angewiesen. Um das so zu gestalten, wie ihr es macht, brauche ich wohl Jahre, wenn ich es denn überhaupt hinbekomme. Kann die Codes halt leider nicht Freihand schreiben.
Liegt das Problem denn jetzt darin, dass ich mit select und activate arbeite, oder weil das Makro in "dieseArbeitsmappe" generell das kopieren und Einfügen verbietet?
MfG Bastian
Anzeige
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 16:46:47
Nepumuk
Hallo Bastian,
welche Zellen sollen wohin kopiert werden?
Wäre es ok die Shortcuts und da Kontextmenü zu ändern?
Gruß
Nepumuk
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 17:24:07
Bastian
Hi, also ich bin für alle "Schandtaten" offen, wenn es im Nachhinein dafür funktioniert ;-)
Also immer vom Blatt "zugang einfügen" nach Blatt "Bestand A" die Werte kopieren.
"zugang einfügen" nach " Bestand A"
C5 nach B8
C6 nach C8
C7 nach D8
C8 nach F8
B15 nach G8
B16 nach H8
B17 nach I8
B18 nach J8
B19 nach K8
B20 nach L8
B21 nach M8
B22 nach N8
B23 nach O8
B24 nach P8
B25 nach Q8
B26 nach R8
B27 nach S8
B28 nach U8
Wenn das einmal steht, kann ich mir das ja auf jede weitere Zeile umfummeln ;-)
MfG Bastian
Anzeige
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 17:17:41
Hajo_Zi
mal nur die ersten Zeilen
    Range("C5").Copy
Sheets("Bestand A").Range("B8").PasteSpecial Paste:=xlPasteValues
Sheets("Zugang einfügen").Range("C6").Copy
Sheets("Bestand A").Range("C8").PasteSpecial Paste:=xlPasteValues

CutCopymode=false muss am Ende sein da Werte übertragen werden.
Gruß Hajo
Anzeige
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 18:00:21
Bastian
Hi,
habe es so weiter geführt und so funktioniert es!
Vielen Dank an Dich und allen anderen die sich der Sache angenommen haben!
MfG Bastian
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 18:32:07
Werner
Hallo,
wozu denn jede Zelle einzeln kopieren?
Sub zugang101()
' zugang101 Makro
Application.ScreenUpdating = False
Range("C5:C8").Copy
Sheets("Bestand A").Range("B8").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Range("B16:B28").Copy
Sheets("Bestand A").Range("G8").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Range("B29").Copy
Sheets("Bestand A").Range("U8").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
Gruß Werner
Anzeige
AW: Kopieren und Einfügen per VBA aber mit CutCopymode=false
23.11.2019 19:39:09
Bastian
Hi Werner,
vielen Dank für deine Lösung!
MfG Bastian
Gerne u. Danke für die Rückmeldung. o.w.T.
23.11.2019 22:23:32
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Kopieren und Einfügen per VBA mit CutCopymode=false


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Arbeitsmappe mit dem gewünschten Tabellenblatt, z.B. "Zugang einfügen".

  2. Erstelle ein neues VBA-Modul:

    • Gehe zu "Entwicklertools" > "Visual Basic".
    • Rechtsklicke auf "Module" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein, um Daten zu kopieren und sicherzustellen, dass Application.CutCopyMode = False am Ende des Makros steht:

    Sub KopierenEinfügen()
       Application.ScreenUpdating = False
       Range("C5:C8").Copy
       Sheets("Bestand A").Range("B8").PasteSpecial Paste:=xlPasteValues, Transpose:=True
       Application.CutCopyMode = False
       Application.ScreenUpdating = True
    End Sub
  4. Führe das Makro aus, um die Werte von "Zugang einfügen" nach "Bestand A" zu übertragen.

  5. Testen: Überprüfe, ob die Daten korrekt eingefügt wurden.


Häufige Fehler und Lösungen

  • Fehler: Der CutCopyMode bleibt auf True.

    • Lösung: Stelle sicher, dass Application.CutCopyMode = False am Ende deines Makros steht.
  • Fehler: Die Werte werden nicht korrekt eingefügt.

    • Lösung: Überprüfe die Range-Referenzen und stelle sicher, dass sie korrekt sind.
  • Fehler: Das Makro führt keine Aktion aus.

    • Lösung: Achte darauf, dass das Makro nicht in einer anderen Arbeitsmappe oder in einem anderen Modul ausgeführt wird.

Alternative Methoden

  • Verwendung von Copy und PasteSpecial: Anstatt jede Zelle einzeln zu kopieren, kannst du auch Bereiche kopieren und dann die Werte transponieren, wie im folgenden Beispiel:

    Sub AlternativeKopieren()
       Application.ScreenUpdating = False
       Range("C5:C8").Copy
       Sheets("Bestand A").Range("B8").PasteSpecial Paste:=xlPasteValues, Transpose:=True
       Application.CutCopyMode = False
       Application.ScreenUpdating = True
    End Sub
  • Direkte Zuweisung: Du kannst auch direkt den Wert zuweisen, um den CutCopyMode zu vermeiden:

    Sub DirekteZuweisung()
       Sheets("Bestand A").Range("B8").Value = Sheets("Zugang einfügen").Range("C5").Value
       Application.CutCopyMode = False
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, um Werte von einem Tabellenblatt in ein anderes zu übertragen:

Sub DatenÜbertragen()
    Sheets("Zugang einfügen").Range("C5").Copy
    Sheets("Bestand A").Range("B8").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

Für mehrere Zellen kannst du:

Sub MehrereZellenKopieren()
    Sheets("Zugang einfügen").Range("C5:C8").Copy
    Sheets("Bestand A").Range("B8").PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Bildschirmaktualisierung zu deaktivieren, während das Makro läuft. Das beschleunigt die Ausführung.
  • Verwende Transpose:=True, um Daten in Zeilen oder Spalten entsprechend anzupassen.
  • Halte den Code sauber und vermeide die Verwendung von Select oder Activate, um die Effizienz zu steigern.

FAQ: Häufige Fragen

1. Was bedeutet Application.CutCopyMode = False? Es deaktiviert den Kopiermodus in Excel, wodurch die Auswahl nach dem Kopieren wieder zurückgesetzt wird.

2. Warum sollte ich CutCopyMode am Ende des Makros setzen? Um sicherzustellen, dass die Auswahl zurückgesetzt wird und keine unerwünschten Formatierungen auftreten.

3. Kann ich das Makro auch für andere Bereiche anpassen? Ja, passe einfach die Range-Referenzen im Code an, um andere Zellen oder Bereiche zu kopieren.

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