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

Forumthread: Springen zu Zelle verhindern

Springen zu Zelle verhindern
Frank
Hallo,
ich möchte gerne per VBA nur die Werte aus einer Zelle (J121) in eine andere (F120) kopieren.
Bislang habe ich dazu folgenden Code, leider springt hier der Cursor jedoch immer zur Zelle in die eingefügt wird. Ich habe auch schon das Select und Selection entfernt, das ändert jedoch auch nichts.
Gibt es hier eine Möglichkeit das Springen des Cursors zu einer Zelle irgendwie zu verhindern ?
Private Sub test()
Worksheets(2).Range("J121").Copy
Worksheets(2).Range("F120").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets(2).Range("J121").Application.CutCopyMode = False
End Sub
VG und vielen Dank im Voraus für jeden Tipp,
Frank
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Springen zu Zelle verhindern
31.07.2012 14:47:36
Beverly
Hi Frank,
versuche es mal so:
Worksheets(2).Range("F120").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Anzeige
AW: Springen zu Zelle verhindern
31.07.2012 15:14:49
Frank
Hallo Karin,
vielen Dank für die schnelle Antwort - ich habe es mit der Lösung von Rudi probiert, die hier in meinem Fall am besten geeignet ist.
Trotzdem danke !
VG und einen schönen Nachmittag noch,
Frank
AW: Springen zu Zelle verhindern
31.07.2012 14:48:10
Rudi
Hallo,
die PasteSpecial-Methode verschiebt immer den Fokus.
Private Sub test()
With Worksheets(2)
.Range("J121").Value = .Range("F120").Value
End With
End Sub

Gruß
Rudi
Anzeige
Korrektur
31.07.2012 14:49:12
Rudi
Hallo,
natürlich umgekehrt.
Private Sub test()
With Worksheets(2)
.Range("F120").Value = .Range("J121").Value
End With
End Sub

Gruß
Rudi
AW: Korrektur
31.07.2012 15:15:56
Frank
Hallo Rudi,
vielen Dank für die schnelle Antwort !
Genau danach hatte ich gesucht - klappt bestens ! :-)
VG und einen schönen Nachmittag noch,
Frank
Anzeige
AW: Springen zu Zelle verhindern
31.07.2012 14:53:43
dan
Hi Frank,
Gibt es hier eine Möglichkeit das Springen des Cursors zu einer Zelle irgendwie zu verhindern ?
- man koente die Selection vor der Copy-Paste Operation speichern und danach die Selction wieder in den ursprunglichen Zustand bringen, aber ist es das was Du brauchst?
Gruss dan, cz.
Option Explicit
Public Sub test()
Dim selectionBefore As Range
If (VBA.TypeName(Selection) = "Range") Then Set selectionBefore = Selection
With Worksheets(2)
.Range("J121").Copy
.Range("F120").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
End With
If (Not selectionBefore Is Nothing) Then selectionBefore.Select
Application.CutCopyMode = False
End Sub

Anzeige
AW: Springen zu Zelle verhindern
31.07.2012 15:15:18
Frank
Hallo Dan,
vielen Dank für die schnelle Antwort - ich habe es mit der Lösung von Rudi probiert, die hier in meinem Fall am besten geeignet ist.
Trotzdem danke !
VG und einen schönen Nachmittag noch,
Frank
AW: Springen zu Zelle verhindern
31.07.2012 15:29:48
dan
Hi Frank,
nur noch faeht mir ein, dass Copy/Paste alles kopiert/einfuegt und Copy/PasteSpecial nur 'etwas', e.g. Wert. Also falls fuer Dich Copy/Paste Ok ist, dann ist es richtig so.
Gruss dan, cz.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Springen zu Zelle in Excel verhindern


Schritt-für-Schritt-Anleitung

Um zu verhindern, dass der Excel-Cursor in eine andere Zelle springt, kannst du VBA verwenden, um nur die Werte von einer Zelle in eine andere zu kopieren. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei, in der du das Problem hast.

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

  3. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ klickst und „Einfügen“ > „Modul“ wählst.

  4. Kopiere und füge den folgenden Code in das Modul ein:

    Private Sub test()
       With Worksheets(2)
           .Range("F120").Value = .Range("J121").Value
       End With
    End Sub
  5. Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.

Mit diesem Code wird der Cursor nicht in eine andere Zelle springen, da du keine Auswahl vornimmst.


Häufige Fehler und Lösungen

  • Problem: Der Excel-Cursor springt in eine andere Zelle, wenn ich die PasteSpecial-Methode verwende.

    • Lösung: Verwende den Code, der nur die Werte kopiert, ohne die Zelle auszuwählen. Siehe Schritt-für-Schritt-Anleitung.
  • Problem: Ich erhalte eine Fehlermeldung beim Ausführen des Makros.

    • Lösung: Überprüfe, ob du den richtigen Arbeitsblattnamen verwendest und ob die Zellen existieren.

Alternative Methoden

Wenn du das Springen des Cursors vermeiden möchtest, kannst du die Selection vorher speichern und nach dem Kopieren wiederherstellen. Hier ein Beispiel:

Public Sub test()
    Dim selectionBefore As Range
    If (VBA.TypeName(Selection) = "Range") Then Set selectionBefore = Selection
    With Worksheets(2)
        .Range("J121").Copy
        .Range("F120").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
    If (Not selectionBefore Is Nothing) Then selectionBefore.Select
    Application.CutCopyMode = False
End Sub

Diese Methode sorgt dafür, dass der vorherige Auswahlbereich beibehalten wird, sodass der Excel-Cursor nicht in eine andere Zelle springt.


Praktische Beispiele

  1. Einfache Wertkopie ohne Cursor-Sprung:

    Private Sub test()
       With Worksheets(1)
           .Range("B1").Value = .Range("A1").Value
       End With
    End Sub
  2. Kopieren von mehreren Zellen:

    Private Sub test()
       With Worksheets(2)
           .Range("A1:A10").Copy
           .Range("B1").PasteSpecial Paste:=xlPasteValues
       End With
       Application.CutCopyMode = False
    End Sub

Beide Beispiele zeigen, wie du Werte transferierst, ohne dass der Cursor in eine andere Zelle springt.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms während der Ausführung des Makros zu vermeiden.
  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft bei der Fehlersuche.
  • Experimentiere mit der PasteSpecial-Methode, um verschiedene Aspekte wie Formate oder Formeln zu kopieren, ohne dass der Cursor springt.

FAQ: Häufige Fragen

1. Warum springt der Excel-Cursor beim Kopieren von Zellen?
Der Cursor springt, weil die PasteSpecial-Methode den Fokus auf die Zielzelle setzt. Durch das Vermeiden von Select und Selection kannst du das verhindern.

2. Gibt es eine Möglichkeit, mehrere Zellen gleichzeitig zu kopieren, ohne den Cursor zu bewegen?
Ja, du kannst die Werte direkt zuweisen, wie im Beispiel gezeigt, um mehrere Zellen zu kopieren, ohne dass der Cursor springt.

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