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

Forumthread: Selection aufheben

Selection aufheben
31.08.2004 10:22:31
Frank
Hallo Excel-Freunde,
wie kann ich den selektierten Bereich nach dem Löschvorgang wieder aufheben.
Gruß
Frank
https://www.herber.de/bbs/user/10329.xls
Anzeige
AW: Selection aufheben
Bert
Escape- Taste
Bert
AW: Selection aufheben
Frank
Hallo Bert,
das funktioniert leider nicht
es sollte auch nicht über eine Taste gehen sondern als Befehl
im Makro angehängt werden das einfach die Selection nach dem Löschvorgang
wieder aufgehoben wird.
Frank
AW: Selection aufheben
Bert
Dann schreib, dass du eine VBA- Lösung brauchst.
[a1].activate
application.cutcopymode = false
Bert
Anzeige
AW: Selection aufheben
Frank
Hallo Bert,
danke für deine Hilfe funktioniert wunderbar
wenn ich nun aber diesen selektierten Bereich nach dem Löschvorgang
noch mit Nullen füllen wollte wie würde der Code dann aussehen.
Frank
AW: Selection aufheben
Bert
[a1].activate
[a1]= 0
[a1].numberformat = "00000"
application.cutcopymode = false
Bert
Anzeige
AW: Selection aufheben
Frank
Sorry Bert,
Gedankenfehler
Die Bereiche F14:044 sind ja zur Berechnung (Multiplikation) mit Formeln.
Diese Formeln sollten nach Berechnung wider auf Null gesetzt werden.
Frank
AW: Selection aufheben
Bert
Verstehe ich nicht und halte mich daher raus.
Bert
AW: Selection aufheben
Frank
Hallo Bert,
würde ich auch nicht verstehen vergiss die letzte nachricht mit den Formeln
Gedankenfehler 2
Anfänger habens schwer
Ich danke euch für euere Rügen und Hilfen
Danke
Frank
Anzeige
AW: Selection aufheben
Dieter
Hallo Frank
lass den Select Befehl weg, du kannst auch ohne Select löschen
Gruß Dieter
AW: Selection aufheben
Frank
Hallo Dieter,
ohne Range(RN1).Select wird der Löschvorgang nicht ausgeführt.
Gruß
Frank
AW: Selection aufheben
ypsilon
hi Frank,
wenn Dieter sagt select ist überflüssig kannst du ihm das ruhig glauben ;-)

Sub SheetsValue_delete()
Const RN1 = "F14:O44"
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets(Array("Ma F 1", "Ma F 2", "Ma F 3", "Ma F 4", "Ma F 5", "Ma F 6", "Ma B 1", "Ma B 2", "Ma B 3", "Ma B 4", "Ma B 5", "Ma B 6", "Ma G 1", "Ma G 2", "Ma G 3", "Ma G 4", "Ma G 5", "Ma G 6", "Ma R 1", "Ma R 2", "Ma R 3", "Ma R 4", "Ma R 5", "Ma R 6", "Ma D 1", "Ma D 2", "Ma D 3", "Ma D 4", "Ma D 5", "Ma D 6")).Select
Range(RN1).ClearContents
Range(RN1).Value = 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

cu Micha
Anzeige
AW: Selection aufheben
kdosi
Hallo Frank,
wenn ich das richtig verstanden habe : Du willst nach dem die Werte im Bereich Range(RN1) geloescht wurden, die Werte wieder in dem Bereich "F14:O44" aufheben? Wenn ich mich nicht irre, gibt es dafuer keine einfache moeglichkeit, bzw. ein Befehl. Man koennte aber z.B. vor dem Loeschen die Werte aus dem Bereich in ein 3D-Array einlesen und dann (falls noetig) wieder die Werte aus diesem Array aufheben. Sonnst faehlt mir dazu nichts ein. Object Apllication hat eine Methode Undo, die macht aber nicht das was Du brauchst :-)! Gruss kdosi, CZ.
Const RN1 = "F14:O44"

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets(Array("Ma F 1", "Ma F 2", "Ma F 3", "Ma F 4", "Ma F 5" usw.)).Select
Range(RN1).ClearContents
Anzeige
AW: Selection aufheben
Dieter
Hallo Frank
dann machs so: Ist getestet!

Sub SheetsValue_delete()
Dim blatt
Const RN1 = "F14:O44"
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each blatt In Sheets(Array("tabelle1", "tabelle2", "tabelle3"))
'  Sheets(Array("Ma F 1", "Ma F 2", "Ma F 3", "Ma F 4", "Ma F 5", "Ma F 6", "Ma B 1", "Ma B 2", "Ma B 3", "Ma B 4", "Ma B 5", "Ma B 6", "Ma G 1", "Ma G 2", "Ma G 3", "Ma G 4", "Ma G 5", "Ma G 6", "Ma R 1", "Ma R 2", "Ma R 3", "Ma R 4", "Ma R 5", "Ma R 6", "Ma D 1", "Ma D 2", "Ma D 3", "Ma D 4", "Ma D 5", "Ma D 6")).Select
blatt.Activate
Range(RN1).ClearContents
'  Sheets("Einzelsummen").Select
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

den Rest musst Du anpassen
Gruß Dieter
Anzeige
AW: Selection aufheben
ypsilon
hi Dieter,
mal komplett ohne select ;-)

Sub SheetsValue_delete()
Const RN1 = "F14:O44"
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("Ma F 1").Range(RN1) = 0
Sheets(Array("Ma F 1", "Ma F 2", "Ma F 3", "Ma F 4", "Ma F 5", "Ma F 6", "Ma B 1", "Ma B 2", "Ma B 3", "Ma B 4", "Ma B 5", "Ma B 6", "Ma G 1", "Ma G 2", "Ma G 3", "Ma G 4", "Ma G 5", "Ma G 6", "Ma R 1", "Ma R 2", "Ma R 3", "Ma R 4", "Ma R 5", "Ma R 6", "Ma D 1", "Ma D 2", "Ma D 3", "Ma D 4", "Ma D 5", "Ma D 6")).FillAcrossSheets Sheets("Ma F 1").Range(RN1)
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

cu Micha
Anzeige
AW: Selection aufheben
Dieter
Hallo Micha
kann in meinem Code keinen SELECT ausmachen !
Vielleicht liegts am Montag? ---)
Nix für Ungut Dieter
AW: Selection aufheben
y
heute ist dienstag !!
...und der scheint nicht unbedingt mein tag zu sein :-(
sorry
cu Micha
AW: Selection aufheben
y
..aber dienstags braucht man auch kein activate ;-)
cu Micha
Anzeige
AW: Selection aufheben
Frank
Hallo Dieter,
excel bringt mir einen Laufzeitfehler?
Sheets("Ma F 1").Range(RN1) = 0
Frank
;
Anzeige
Anzeige

Infobox / Tutorial

Auswahl aufheben in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Auswahl in Excel VBA aufzuheben, kannst du den folgenden Befehl verwenden:

Application.CutCopyMode = False

Dieser Befehl sorgt dafür, dass die aktuelle Auswahl (Markierung) aufgehoben wird. Wenn du dies nach einem Löschvorgang einfügen möchtest, kannst du den Code wie folgt strukturieren:

Sub Beispiel()
    ' Bereich definieren
    Const RN1 As String = "F14:O44"

    ' Inhalte löschen
    Range(RN1).ClearContents

    ' Auswahl aufheben
    Application.CutCopyMode = False
End Sub

Füge den Befehl Application.CutCopyMode = False einfach am Ende deiner Prozedur ein, um die Markierung zu entfernen.


Häufige Fehler und Lösungen

Fehler: Laufzeitfehler bei der Verwendung von Range

  • Lösung: Stelle sicher, dass der Bezug auf den Bereich korrekt ist. Wenn du Sheets("Ma F 1").Range(RN1) = 0 verwendest, überprüfe, ob das Blatt existiert.

Fehler: Markierung wird nicht aufgehoben

  • Lösung: Achte darauf, dass Application.CutCopyMode = False immer nach einem Löschvorgang ausgeführt wird.

Alternative Methoden

Eine alternative Methode, um die Auswahl in einem Makro aufzuheben, ist die Verwendung des Select-Befehls. Allerdings wird empfohlen, diesen zu vermeiden, um die Effizienz des Codes zu steigern. Du kannst direkt auf den Bereich zugreifen:

Sub AlternativeMethode()
    Const RN1 As String = "F14:O44"
    Sheets("Ma F 1").Range(RN1).ClearContents
    Application.CutCopyMode = False
End Sub

Diese Methode benötigt keinen Select-Befehl und ist dadurch schneller.


Praktische Beispiele

Beispiel, wie Werte nach dem Löschen auf 0 gesetzt werden:

Sub WerteLoeschenUndSetzen()
    Const RN1 As String = "F14:O44"
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    ' Inhalte löschen
    Sheets("Ma F 1").Range(RN1).ClearContents

    ' Werte auf 0 setzen
    Sheets("Ma F 1").Range(RN1).Value = 0

    ' Auswahl aufheben
    Application.CutCopyMode = False

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Tipps für Profis

  • Vermeide die Verwendung des Select-Befehls, wenn möglich. Das macht deinen Code schneller und effizienter.
  • Nutze Application.ScreenUpdating = False, um Flackern während der Ausführung zu verhindern.
  • Überlege, ob du vor dem Löschen die Werte in einem Array speichern möchtest, um sie später wiederherstellen zu können.

FAQ: Häufige Fragen

1. Wie kann ich die Auswahl nach dem Kopieren aufheben? Um die Auswahl nach dem Kopieren aufzuheben, verwende einfach Application.CutCopyMode = False.

2. Ist es notwendig, die Anwendung zu aktualisieren, nachdem ich die Auswahl aufgehoben habe? Es ist nicht notwendig, die Anwendung manuell zu aktualisieren, aber das Setzen von Application.ScreenUpdating = True nach deiner Prozedur kann nützlich sein, um die Anzeige zu aktualisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige