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

Markierung nach Ausführung eines Makros aufheben

Forumthread: Markierung nach Ausführung eines Makros aufheben

Markierung nach Ausführung eines Makros aufheben
09.10.2012 19:37:20
Fritz_W
Hallo Forumsbesucher,
mit dem nachstehenden Code wird der Zellbereich ("BL4:BT22") der Tabelle1 kopiert und als Wert sowohl in den Zellbereich "D4:L12" der Tabelle1 als auch der Tabelle2 eingefügt. Nach Ausführung des Makros sind die Zellbereiche "D4:L12" sowohl in Tabelle1 als auch Tabelle2 markiert.
Wie kann man das abstellen?
Im Voraus besten Dank
mfg
Fritz
Sub Uebertrag()
Dim ws1, ws2
Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
Set ws2 = ThisWorkbook.Worksheets("Tabelle2")
ws1.Range("BL4:BT12").Copy
ws1.Range("D4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ws2.Range("D4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierung nach Ausführung eines Makros aufheben
09.10.2012 19:38:25
Hajo_Zi
Hallo fritz,
select auf eine Zelle.

AW: Markierung nach Ausführung eines Makros aufheben
09.10.2012 19:44:23
Matze,Matthias

Sub Uebertrag()
Dim ws1, ws2
Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
Set ws2 = ThisWorkbook.Worksheets("Tabelle2")
ws1.Range("BL4:BT12").Copy
ws1.Range("D4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ws2.Range("D4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False 'aufheben des kopierens
ws1.A1.select ' anpassen
End Sub

Anzeige
AW: Markierung nach Ausführung eines Makros aufheben
09.10.2012 20:07:47
Fritz_W
Hallo Hajo und Matze,
vielen Dank für eure Unterstützung.
Funktioniert leider nicht, vermute, dass es daran liegt, dass in zwei verschiedene Tabellen kopiert wird.
Füge eine Beispielmappe bei!
Viele Grüße
Fritz
https://www.herber.de/bbs/user/82043.xlsm

Anzeige
AW: Markierung nach Ausführung eines Makros aufheben
09.10.2012 20:10:11
Hajo_Zi
Hallo Fritz,
select kannst Du nur in der aktiven Tabelle, also beide Tabellen nacheinander aktivieren.
Gruß Hajo

AW: Markierung nach Ausführung eines Makros aufheben
09.10.2012 20:13:18
Fritz_W
Hallo Hajo,
vielen Dank!
Gruß
Fritz

AW: Markierung nach Ausführung eines Makros aufheben
09.10.2012 23:26:50
Daniel
Hi
arbeite nicht mit Copy-Paste, da dieses automatsich die Zellen selektiert, sondern weise die Werte direkt zu:
...
ws1.Range("D4:L12").Value = ws1.Range("BL4:BT12").Value
ws2.Range("D4:L12").Value = ws1.Range("BL4:BT12").Value
...
da du nur einen einfachen Werteübertrag ohne Spezialfunktionen machst, geht das problemlos.
Gruß Daniel

Anzeige
AW: Markierung nach Ausführung eines Makros aufheben
10.10.2012 12:46:45
Fritz_W
Hallo Daniel,
vielen Dank für deinen hilfreichen Vorschlag.
mfg
Fritz
;
Anzeige
Anzeige

Infobox / Tutorial

Markierung nach Ausführung eines Makros aufheben


Schritt-für-Schritt-Anleitung

Um die Markierung von Zellen nach der Ausführung eines Makros in Excel VBA aufzuheben, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge den folgenden Code ein:

    • Ersetze den bestehenden Code in Deinem Makro mit diesem:
    Sub Uebertrag()
       Dim ws1 As Worksheet, ws2 As Worksheet
       Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
       Set ws2 = ThisWorkbook.Worksheets("Tabelle2")
    
       ws1.Range("BL4:BT12").Copy
       ws1.Range("D4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
       ws2.Range("D4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
       Application.CutCopyMode = False ' Markierung aufheben
       ws1.Range("A1").Select ' Auswahl auf Zelle A1 zurücksetzen
    End Sub
  3. Schließe den VBA-Editor und teste das Makro, um sicherzustellen, dass die Markierung nach der Ausführung aufgehoben wird.


Häufige Fehler und Lösungen

  • Fehler: Markierung bleibt bestehen:

    • Wenn die Markierung nach dem Ausführen des Makros bestehen bleibt, stelle sicher, dass Application.CutCopyMode = False im Code enthalten ist.
  • Fehler: Zellen werden nicht wie gewünscht aktualisiert:

    • Überprüfe, ob Du die richtigen Zellbereiche in Deinem Code angegeben hast.
  • Fehler: Auswahl auf falscher Tabelle:

    • Wenn Du mit mehreren Tabellen arbeitest, achte darauf, dass Du die aktive Tabelle korrekt auswählst, bevor Du die Select-Methode verwendest.

Alternative Methoden

Anstatt Copy-Paste zu verwenden, kannst Du die Werte direkt zuweisen, um die Markierung zu vermeiden. Hier ist ein Beispiel:

Sub Uebertrag()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Set ws1 = ThisWorkbook.Worksheets("Tabelle1")
    Set ws2 = ThisWorkbook.Worksheets("Tabelle2")

    ws1.Range("D4:L12").Value = ws1.Range("BL4:BT12").Value
    ws2.Range("D4:L12").Value = ws1.Range("BL4:BT12").Value
End Sub

Diese Methode verwendet keine Kopieroperation und verhindert somit, dass eine Auswahl erstellt wird.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Markierung aufheben kannst:

  1. Beispiel mit Select:

    ws1.Range("A1").Select ' Auswahl auf Zelle A1 zurücksetzen
  2. Beispiel mit direkter Zuweisung:

    ws1.Range("D4:L12").Value = ws1.Range("BL4:BT12").Value ' Werte direkt zuweisen

Beide Methoden sorgen dafür, dass die Markierung nach der Ausführung des Makros nicht bestehen bleibt.


Tipps für Profis

  • Vermeide Select-Befehle: Nutze, wenn möglich, die direkte Adressierung von Zellen, um die Performance zu verbessern und unnötige Markierungen zu vermeiden.

  • Verwende Application.ScreenUpdating = False: Deaktiviere die Bildschirmaktualisierung während der Ausführung des Makros, um die Geschwindigkeit zu erhöhen. Vergiss nicht, sie am Ende wieder zu aktivieren.

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Teste den Code schrittweise: Verwende die F8-Taste im VBA-Editor, um den Code Zeile für Zeile auszuführen und eventuelle Fehler schnell zu identifizieren.


FAQ: Häufige Fragen

1. Wie kann ich die Auswahl aufheben, wenn ich mehrere Tabellen bearbeite? Um die Auswahl in mehreren Tabellen aufzuheben, musst Du sicherstellen, dass Du die aktive Tabelle korrekt auswählst, bevor Du die Select-Methode anwendest.

2. Was ist der Unterschied zwischen Copy-Paste und direkter Zuweisung? Copy-Paste erzeugt eine Auswahl, während die direkte Zuweisung die Werte ohne Markierung überträgt. Die direkte Zuweisung ist effizienter und vermeidet unnötige Ablenkungen.

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