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

Forumthread: Kopieren und einfügen ohne Select?

Kopieren und einfügen ohne Select?
13.06.2017 11:49:50
Marco
Mahlzeit alle. Ich habe nur ein kleines Problem und zwar kopiere per Button eine Zeile von A nach B das klappt wunderbar aber ich mich stört das die kopierte Zeile markiert bleibt. Bekommt man das irgendwie weg?
Private Sub CommandButton21_Click()
Dim LRow As Integer
LRow = Sheets("Tracking Liste").Cells(Rows.Count, 3).End(xlUp).Row + 1
Range("C" & LRow).Select
Selection.EntireRow.Insert
Range("C9:N9").Copy
Range("C" & LRow).Select
ActiveSheet.Paste
ThisWorkbook.Worksheets("Tracking Liste").Cells(8, 3).Select
End Sub

Ich war der Meinung das ich das mit dem unten aufgeführten Befehl umgehen kann aber leider hat das nicht funktioniert. Danke schon mal an alle.
ThisWorkbook.Worksheets("Tracking Liste").Cells(8, 3).Select
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Kopieren und einfügen ohne Select?
13.06.2017 11:55:51
UweD
Ungetestet...
Private Sub CommandButton21_Click()
Dim LRow As Integer
With ThisWorkbook.Worksheets("Tracking Liste")
LRow = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
.Range("C" & LRow).EntireRow.Insert
.Range("C9:N9").Copy .Range("C" & LRow)
.Cells(8, 3).Select 'wenn du das brauchst
End With
End Sub

LG UweD
Anzeige
AW: Kopieren und einfügen ohne Select?
13.06.2017 12:20:45
Marco
Getestet und für GUT befunden =D danke
Prima! Danke für die Rückmeldung. owT
13.06.2017 12:56:57
UweD

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Kopieren und Einfügen in Excel ohne Select


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und wechsle zu der Arbeitsmappe, in der du den Code anwenden möchtest.

  2. Gehe zu den Entwicklertools und füge einen CommandButton hinzu.

  3. Klicke mit der rechten Maustaste auf den Button und wähle „Code anzeigen“.

  4. Füge den folgenden Code in das Codefenster ein, um eine Zeile zu kopieren und in eine neue Zeile einzufügen, ohne die Zelle zu markieren:

    Private Sub CommandButton21_Click()
       Dim LRow As Integer
       With ThisWorkbook.Worksheets("Tracking Liste")
           LRow = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
           .Range("C" & LRow).EntireRow.Insert
           .Range("C9:N9").Copy .Range("C" & LRow)
           .Cells(8, 3).Select 'optional, falls du das brauchst
       End With
    End Sub
  5. Schließe das VBA-Fenster und teste den Button, um sicherzustellen, dass die Zeile korrekt kopiert wird.


Häufige Fehler und Lösungen

  • Problem: Die kopierte Zeile bleibt markiert.

    • Lösung: Stelle sicher, dass du den With-Befehl verwendest, wie im obigen Beispiel gezeigt. Dadurch wird die Auswahl nach dem Kopieren nicht mehr angezeigt.
  • Problem: Fehler beim Einfügen der Zeile.

    • Lösung: Überprüfe, ob die Zielzelle korrekt ausgewählt ist und die Zeile tatsächlich eingefügt werden kann.

Alternative Methoden

Eine alternative Methode ist die Verwendung der PasteSpecial-Funktion, um spezifische Eigenschaften zu kopieren, ohne die Zelle zu markieren. Hier ein Beispiel:

Range("C9:N9").Copy
Range("C" & LRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False ' Entfernt die Markierung

Diese Methode ist nützlich, wenn du nur die Werte ohne Formatierungen kopieren möchtest.


Praktische Beispiele

Angenommen, du möchtest Daten von einer Zeile in einer anderen Arbeitsmappe kopieren. Der Code könnte so aussehen:

Private Sub CommandButton21_Click()
    Dim LRow As Integer
    With Workbooks("AndereMappe.xlsx").Worksheets("Tracking Liste")
        LRow = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
        .Range("C" & LRow).EntireRow.Insert
        Workbooks("AktuelleMappe.xlsx").Worksheets("Tracking Liste").Range("C9:N9").Copy .Range("C" & LRow)
        Application.CutCopyMode = False
    End With
End Sub

Dieses Beispiel zeigt, wie du Daten zwischen verschiedenen Arbeitsmappen kopieren kannst, ohne die Auswahl anzuzeigen.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False zu Beginn deines Codes, um die Bildschirmaktualisierung zu deaktivieren und die Ausführungsgeschwindigkeit zu erhöhen.
  • Vergiss nicht, die Bildschirmaktualisierung wieder zu aktivieren mit Application.ScreenUpdating = True, nachdem dein Code ausgeführt wurde.
  • Verwende klare und verständliche Variablennamen, um deinen Code leichter lesbar zu machen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeilen gleichzeitig kopieren?
Du kannst den Bereich anpassen, den du kopieren möchtest, z. B. .Range("C9:N11").Copy für drei Zeilen.

2. Was ist der Unterschied zwischen Copy und PasteSpecial?
Copy kopiert alles (Werte, Formate, Formeln), während PasteSpecial dir erlaubt, spezifische Eigenschaften auszuwählen, wie nur die Werte zu kopieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige