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

Einzelne Makro aktivieren und deaktivieren?

Forumthread: Einzelne Makro aktivieren und deaktivieren?

Einzelne Makro aktivieren und deaktivieren?
20.12.2018 14:00:54
Ray
Hallöchen,
ich habe da mal wieder eine Frage, in der Hoffnung das ihr mir weiterhelfen könnt.
Und zwar habe ich ein Makro, dass mir nur die Werte einfügt ohne Formatierung o.ä.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Target.PasteSpecial xlPasteValues
Application.CutCopyMode = True
End Sub

Es wird eine Zelle markiert, STRG+C gedrückt und mit einem Mausklick auf die gewünschte Zelle
wird automatisch der WERT eingefügt (ohne STRG+V).
Das Problem ist, dass das Makro ständig läuft, ich möchte aber, das „Feature“ nur Sporadisch nutzen. Zusätzlich würde durch das Makro auf Dauer andere VBA Anwendungen gestört…
Meine Idee war, dass Makro per Button zu aktiveren und deaktivieren nur, wenn ich das auch nutzen möchte.
Leider konnte ich die Idee nicht so recht umsetzten und deshalb wollte ich bei euch mal nachfragen,
ob einer evtl. eine Idee hat.
Vielen Dank und
Frohe Festtage
Grüße
Ray
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
20.12.2018 14:20:07
Torsten
Hallo Ray,
klar das Makro rennt jedesmal, wenn du die Zelle wechselst.
Pack doch den Code in das Before_Doubleclick event und fuege den Wert so mit Doppelklick in die gewuenschte Zelle. Eine Moeglichkeit. Ao brauchst du keinen Button.
Oder ins Change Event, dann musst du die Zelle anklicken und mit Enter bestaetigen. Sollte auch funktionieren. Allerdings wird dann hier immer der Inhalt der Zwischenablage einkopiert, egal was da drin ist.
Gruss Torsten
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
20.12.2018 15:54:03
Ray
Hi Torsten,
Die Idee mit dem Before_Doubleclick ist gar nicht schlecht.
Allerdings bekomme ich das nicht so recht umgesetzt.
Verstehe ich das richtig? Dann sollte per Doppelklick auf eine gewünschte Zelle,
der Inhalt in den Zwischenspeicher gesetzt werden und per Klick auf die Zielzelle
sollte der Inhalt (WERT) eingefügt werden. Richtig?
LG
Ray
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
20.12.2018 16:38:56
Ray
Hi,
ich habe das so probiert:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Copy
Cancel = True
On Error Resume Next
Target.PasteSpecial xlPasteValues
Application.CutCopyMode = True
End Sub
Aber das funktioniert leider nicht.
LG
Ray
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
20.12.2018 17:11:10
Werner
Hallo Ray,
einfach:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.Value = Target.Value
End Sub
Gruß Werner
AW: Einzelne Makro aktivieren und deaktivieren?
20.12.2018 17:28:29
Ray
Hi Werner,
das funktiniert leider gar nicht.
Gruß
Ray
AW: Einzelne Makro aktivieren und deaktivieren?
20.12.2018 19:30:27
Werner
Hallo Ray,
da hatte ich dich falsch verstanden, bin davon ausgegangen, dass du in der doppelt angeklickten Zelle die Formel durch den jeweiligen Formelwert ersetzen willst.
Versuch mal das:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Select Case Application.CutCopyMode
Case Is = False
Target.Copy
Case Is = xlCopy
Target.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Select
End Sub
1. Doppelklick auf die Zelle die kopiert werden soll.
die doppelt angeklickte Zelle wird kopiert
2. Doppelklick auf die Zelle in die der Wert kopiert werden soll
der vorher durch Doppelklick kopierte Wert wird eingefügt
Gruß Werner
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
21.12.2018 11:01:33
Ray
Hallo Community hallo Werner,
danke für deinen Vorschlag, so funktioniert das Marko gut. Vielen Dank dir.
Eine Frage hätte ich trotzdem noch ;)
Mit dem Ursprungs Makro war für das Einfügen kein Doppelklick nötig,
es konnten auch mehrere Zellen Markiert werden und der Inhalt wurde in z.B. 5 Zellen Gleichzeitig eingefügt.
Lässt sich das irgendwie noch intrigieren?
Denn dadurch müsste nicht in jede einzelne Zelle per Doppelklick eingefügt werden.
Vielen Dank
LG
Ray
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
21.12.2018 11:47:34
Werner
Hallo Ray,
dann würde ich den Rechtsklick verwenden.
Ins Codemodul der Tabelle:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Application.CutCopyMode = False Then
If Target.Cells(1, 1)  "" Then
Cancel = True
Set raBereich = Target
Target.Copy
End If
Else
If Not raBereich Is Nothing Then
Target.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Else
Cancel = False
End If
End If
End Sub
In ein allgemeines Modul
-ein allgemeines Modul mit "Einfügen Modul" anlegen und dann nur diese Codezeile ins Codefenster kopieren (keine Prozedur im Modul anlegen)
Public raBereich As Range
Du kannst zunächst mehrere Zellen auswählen und dann mit Rechtsklick kopieren. Mit Rechtsklick in der Zielzelle wird der vorher markierte Bereich eingefügt.
Du kannst auch eine einzelne Zelle mit Rechtsklick kopieren. Dann kannst du mehrere Zellen als Zielbereich auswählen und mit Rechtsklick die Daten einfügen.
Gruß Werner
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
21.12.2018 13:22:01
Ray
Hi Werner,
das ist ja ganz geil, allerdings, wie komme ich in Kontextmenü?
Um Kommentare oder Zeilen etc. einzufügen?
LG
Ray
AW: Einzelne Makro aktivieren und deaktivieren?
21.12.2018 13:41:07
Werner
Hallo Ray,
dann nimm das Cancel = True aus dem Code raus.
Gruß Werner
AW: Einzelne Makro aktivieren und deaktivieren?
25.12.2018 19:56:58
Ray
Hallo Werner,
Bitte entschuldige, dass ich mich jetzt erst melde (Weihnachtsstress)
Ich wollte dir aber trotzdem noch mitteilen, dass nun alles funktioniert.
Vielen vielen Dank für deinen Input, du hast mir sehr geholfen.
Ich wünsche dir noch Besinnliche Restfeiertage und einen guten Rutsch ins neue Jahr.
Vielen Dank
Ray
Anzeige
AW: Einzelne Makro aktivieren und deaktivieren?
25.12.2018 19:56:59
Ray
Hallo Werner,
Bitte entschuldige, dass ich mich jetzt erst melde (Weihnachtsstress)
Ich wollte dir aber trotzdem noch mitteilen, dass nun alles funktioniert.
Vielen vielen Dank für deinen Input, du hast mir sehr geholfen.
Ich wünsche dir noch Besinnliche Restfeiertage und einen guten Rutsch ins neue Jahr.
Vielen Dank
Ray
Anzeige
Gerne u. Danke für die Rückmeldung...
26.12.2018 08:55:14
Werner
Hallo Ray,
...dir auch noch einen guten Rutsch nach 2019.
Gruß Wenrer
;
Anzeige
Anzeige

Infobox / Tutorial

Einzelne Makros aktivieren und deaktivieren in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel zu aktivieren oder zu deaktivieren, kannst du folgende Schritte ausführen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Modul erstellen: Klicke im Projekt-Explorer mit der rechten Maustaste auf deine Arbeitsmappe, wähle „Einfügen“ und dann „Modul“.

  3. Code einfügen: Füge den gewünschten VBA-Code in das Modul ein. Zum Beispiel, um ein Makro zu aktivieren, das nur Werte ohne Formatierung kopiert:

    Public raBereich As Range
    
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        If Application.CutCopyMode = False Then
            If Target.Cells(1, 1) <> "" Then
                Cancel = True
                Set raBereich = Target
                Target.Copy
            End If
        Else
            If Not raBereich Is Nothing Then
                Target.PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
            Else
                Cancel = False
            End If
        End If
    End Sub
  4. Makro testen: Wechsle zurück zu Excel, markiere die Zellen, die du kopieren möchtest, und nutze den Rechtsklick, um sie einzufügen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird bei jedem Zellenwechsel aktiv.

    • Lösung: Ändere das Event, in dem der Code ausgeführt wird. Nutze Worksheet_BeforeDoubleClick oder Worksheet_BeforeRightClick, um die Ausführung gezielt zu steuern.
  • Fehler: Der Wert wird nicht korrekt eingefügt.

    • Lösung: Stelle sicher, dass der Code für das Einfügen korrekt ist. Überprüfe, ob die Zwischenablage den richtigen Wert hat.

Alternative Methoden

Eine alternative Methode, um Makros in Excel zu deaktivieren oder zu aktivieren, ist die Verwendung von Tastenkombinationen. Du kannst dazu die Alt-Taste zusammen mit einer benutzerdefinierten Kombination verwenden, um ein bestimmtes Makro zu starten oder zu stoppen. Hier ein Beispiel:

  • Makro aktivieren/deaktivieren:

    Sub ToggleMakro()
        Application.OnKey "^m", "MeinMakro"
    End Sub

Hierbei wird ^m für die Kombination STRG + M verwendet, um dein Makro zu aktivieren.


Praktische Beispiele

Ein praktisches Beispiel für ein Makro, das das Einfügen von Werten ohne Formatierungen ermöglicht, könnte so aussehen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.Range("A1:A10")) Is Nothing Then
        Application.CutCopyMode = False
        Target.PasteSpecial Paste:=xlPasteValues
        Cancel = True
    End If
End Sub

Hier wird der Wert nur in den Zellen A1 bis A10 eingefügt, wenn du einen Doppelklick machst.


Tipps für Profis

  • Tastenkombinationen nutzen: Um Makros schnell zu aktivieren oder zu deaktivieren, kannst du Tastenkombinationen verwenden, um die Effizienz zu steigern.
  • Sicherungskopien erstellen: Bevor du mit VBA-Codierung beginnst, mache immer eine Sicherungskopie deiner Datei, um Datenverlust zu vermeiden.
  • Debugging verwenden: Nutze die Debugging-Tools im VBA-Editor, um Probleme im Code schnell zu identifizieren und zu beheben.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro in Excel deaktivieren?
Du kannst ein Makro deaktivieren, indem du den entsprechenden Code aus dem VBA-Editor entfernst oder die Funktion Application.EnableEvents = False verwendest, um alle Makros temporär zu deaktivieren.

2. Gibt es eine Tastenkombination, um Makros zu aktivieren?
Ja, du kannst eine Tastenkombination mithilfe der OnKey-Methode in VBA festlegen, um ein Makro mit einer bestimmten Kombination schnell zu starten.

3. Wie kann ich mehrere Zellen gleichzeitig mit einem Makro bearbeiten?
Du kannst den Code so anpassen, dass er auf Auswahländerungen reagiert und mehrere Zellen gleichzeitig bearbeitet, indem du Schleifen verwendest oder den Target-Bereich verarbeitest.

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