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

Forumthread: Zellmarkierung aufheben

Zellmarkierung aufheben
Tim
Hallo,
ich verwende folgendes Makro, um Daten von einem Bereich in einen anderen zu kopieren.
Das klappt auch, allerdings bleiben am Ende des Makros immer die kopierten Zellen markiert und der Rand drumherum flimmert.
Kann mir jemand sagen, wie man das umehen kann ?
Option Explicit
Option Private Module
Sub DefaultData()
' prepares imported data
Application.ScreenUpdating = False
Worksheets(4).Select
With ActiveWorkbook.Worksheets(4)
Range("D11:J12").ClearContents
Range("D33:J34").Copy
Range("D11:J12").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Application.ScreenUpdating = True
Range("C9").Select
End Sub
VG und vielen Dank Euch im Voraus,
Tim
Anzeige
AW: Zellmarkierung aufheben
12.08.2012 17:26:12
Hajo_Zi
Hallo Tim,
den einen Teil
Application.CutCopyMode = False
vor End Sub

AW: Zellmarkierung aufheben
12.08.2012 17:34:42
Hajo_Zi
Hallo Tim,
Du sollltest die Punkt nicht vergessen wegen With. Die activierung der Tabelle ist nicht notwendig.
Option Explicit
Sub DefaultData()
' prepares imported data
Application.ScreenUpdating = False
With ActiveWorkbook.Worksheets(1)
.Range("D11:J12").ClearContents
.Range("D33:J34").Copy
.Range("D11:J12").PasteSpecial Paste:=xlPasteValues
End With
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

Gruß Hajo
Anzeige
AW: Zellmarkierung aufheben
12.08.2012 17:39:50
Hajo_Zi
Hallo Tim und aufheben der Markierung.
Option Explicit
Sub DefaultData()
' prepares imported data
Application.ScreenUpdating = False
With ActiveWorkbook.Worksheets(1)
.Range("D11:J12").ClearContents
.Range("D33:J34").Copy
.Range("D11:J12").PasteSpecial Paste:=xlPasteValues
.Range("A1").Copy
.Range("A1").PasteSpecial Paste:=xlPasteAll
End With
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
Gruß Hajo
Anzeige
AW: Zellmarkierung aufheben
12.08.2012 18:38:07
Tim
Hallo Hajo,
vielen Dank dafür - das klappt super und v.a. die Erklärung ist eine riesen Hilfe ! :-)
Jetzt verstehe ich den Ablauf hier und kann es auch in einer anderen Tabelle anpassen - danke !
Ich habe noch eine kleine andere Frage - vielleicht hast Du dazu auch noch eine Idee ?
Ich verwende als von Workbook_Open in dieser Tabelle folgenden Code, um bestimmte Tasten mit einer MessageBox bzw. einem Makro zu verbinden.
Kannst Du mir sagen, was ich hier ändern muss (und wo genau), damit sich das nur auf diese eine Arbeitsmappe bezieht ?
Private Sub Workbook_Open()
With Application
.DisplayFormulaBar = False
.OnKey "^c", "FeatureDeactivated_Msg"
.OnKey "^p", "FeatureDeactivated_Msg"
.OnKey "{F12}", "ShowUserForm7"
.OnKey "%{F2}", "FeatureDeactivated_Msg"
.OnKey "%{F8}", "FeatureDeactivated_Msg"
End With
End Sub
VG und nochmals vielen Dank,
Tim
Anzeige
AW: Zellmarkierung aufheben
12.08.2012 18:40:43
Hajo_Zi
Hallo Tim,
bei
Private Sub Workbook_Activate()
mußt Du Sie setzen und bei
Private Sub Workbook_Deactivate()
löschen. Unter DieseArbeitsmappe.
Gruß Hajo
AW: Zellmarkierung aufheben
12.08.2012 18:51:57
Tim
Hallo Hajo,
danke nochmal !
Ich gehe bei Workbook_Open einen Umweg über eine UserForm, d.h. beim Öffnen der Arbeitsmappe erscheint zunächst eine UserForm mit einem Text und wenn man den bestätigt, wird durch den Button in der UF der obige Code gestartet.
Daher kann ich Workbook_Activate hier leider nicht verwenden - ginge hier evtl. auch Worksheet_Activate oder etwas anderes ?
VG,
Tim
Anzeige
AW: Zellmarkierung aufheben
12.08.2012 19:07:24
Hajo_Zi
Halo Tim,
das bedeutet dann aber für alle Tabellen.
Gruß Hajo
AW: Zellmarkierung aufheben
12.08.2012 19:28:46
Tim
Hallo Hajo,
das heißt, Worksheet_Activate geht, nur dass ich es dort in jedem Blatt separat einfügen muss ?
Das wäre kein Problem.
Habe ich es richtig verstanden und gibt es hier noch etwas zu beachten ?
VG,
Tim
Anzeige
AW: Zellmarkierung aufheben
12.08.2012 19:30:51
Hajo_Zi
Hallo Tim.
das hast Du ricvhtig verstanden. Du mußt nur beachten das Du die Zuweisung nicht mehrmals machhs, ich vermute das löst ein Fehler aus.
Gruß Hajo
AW: Zellmarkierung aufheben
12.08.2012 20:02:05
Tim
Klasse - vielen Dank für alles, Hajo !
Viele Grüße und einen schönen Abend noch,
Tim
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zellmarkierung in Excel VBA aufheben


Schritt-für-Schritt-Anleitung

Um die Zellmarkierung in Excel VBA aufzuheben, kannst Du den folgenden Code verwenden. Dieser Code wird häufig verwendet, um nach dem Kopieren von Daten die Auswahl aufzuheben und das Flimmern der Ränder zu vermeiden.

Option Explicit
Sub DefaultData()
    ' Daten vorbereiten
    Application.ScreenUpdating = False
    With ActiveWorkbook.Worksheets(1)
        .Range("D11:J12").ClearContents
        .Range("D33:J34").Copy
        .Range("D11:J12").PasteSpecial Paste:=xlPasteValues
    End With
    Application.CutCopyMode = False ' Markierung aufheben
    Application.ScreenUpdating = True
End Sub

In diesem Beispiel wird die Markierung durch Application.CutCopyMode = False aufgehoben, was eine gute Methode ist, um die Auswahl in Excel VBA zu entfernen.


Häufige Fehler und Lösungen

  1. Markierung bleibt trotz Code bestehen:

    • Stelle sicher, dass Application.CutCopyMode = False nach dem Kopieren aufgerufen wird. Dies sollte immer am Ende des Makros stehen.
  2. Flimmern der Zellen:

    • Aktiviere Application.ScreenUpdating = False zu Beginn des Codes und setze es am Ende wieder auf True, um das Flimmern zu minimieren.

Alternative Methoden

Eine weitere Möglichkeit, die Markierung aufzuheben, besteht darin, die Methode Select zu vermeiden und stattdessen direkt mit dem Range-Objekt zu arbeiten. Dies kann die Effizienz Deines Codes erhöhen und die Notwendigkeit verringern, die Auswahl manuell aufzuheben.

With ActiveWorkbook.Worksheets(1)
    .Range("D11:J12").ClearContents
    .Range("D33:J34").Copy
    .Range("D11:J12").PasteSpecial Paste:=xlPasteValues
    .Range("A1").Select ' Beispiel, um eine andere Zelle auszuwählen
End With
Application.CutCopyMode = False ' Markierung aufheben

Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie Du die Auswahl aufheben kannst, wenn Du mehrere Bereiche kopierst:

Sub MehrfachauswahlAufheben()
    Application.ScreenUpdating = False
    With ActiveWorkbook.Worksheets(1)
        .Range("A1:B2").Copy
        .Range("C1").PasteSpecial Paste:=xlPasteValues
        .Range("D1:E2").Copy
        .Range("F1").PasteSpecial Paste:=xlPasteValues
    End With
    Application.CutCopyMode = False ' Markierung aufheben
    Application.ScreenUpdating = True
End Sub

Tipps für Profis

  • Vermeide die Verwendung von Select: Dies macht Deinen Code schneller und einfacher zu lesen. Arbeite stattdessen direkt mit dem Range-Objekt.
  • Nutze With-Anweisungen: Dadurch kannst Du den Code kürzer und übersichtlicher gestalten.
  • Verwende Application.ScreenUpdating: Dies hilft, die Benutzeroberfläche während der Ausführung des Codes flüssig zu halten.

FAQ: Häufige Fragen

1. Wie kann ich die Markierung aufheben, wenn ich mehrere Zellen gleichzeitig kopiere?
Du kannst einfach Application.CutCopyMode = False verwenden, nachdem alle Kopier- und Einfügevorgänge abgeschlossen sind.

2. Funktioniert das auch in Excel 365?
Ja, der Code ist mit allen modernen Excel-Versionen kompatibel, einschließlich Excel 365.

3. Muss ich Application.ScreenUpdating immer verwenden?
Es ist nicht zwingend erforderlich, aber es verbessert die Benutzererfahrung, da es das Flimmern der Benutzeroberfläche vermeidet.

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