online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon korfuweb vom 02.03.2021, 13:14 Options

Makro im Makro deaktivieren ?

Hallo Supprotgemeinde,

hab mal wieder so ein Problemchen.

folgender IST-Zustand

habe eine Tabelle in Excel, nun möchte ich eben per Makro an der aktiven Position eine "Zeile" kopieren und ebenfalls gleich einfügen.
Das sollte ja problemlos machbar sein. Allerdings hat die Sache einen kleinen Hacken.

Das Arbeitsblatt ist mit folgendem Makro versehen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B1:B3000")) Is Nothing Then Call CopyPA
End Sub

was ja heisst wird die Zelle "aktiv" führt er automatisch das Makro "COPYPA" aus.

Und da liegt das Problem, Versuche ich die Zeile zu makieren, wird ja immer sofort das genannte Makro ausgeführt und somit is Nix mit kopieren.
Vieleicht kennt ja jemand ne Lösung wie man das kurzfristik deaktivieren bzw. aktivieren kann.

Gruß Volker


Antwort schreiben

Antwort 1 von Hajo_Zi vom 02.03.2021, 13:18 Options

Hallo Volker,

Select braucht man in VBA zu 99,9% nicht. mache das kopieren und einfügen per VBA.

Gruß Hajo

Antwort 2 von korfuweb vom 02.03.2021, 13:23 Options

Halo Hajo,

wollte ich ja und zwar wie folgt :
Sub XZKOPIE()
i = ActiveCell.Row
Rows(i + 1 & ":" & i + 1).Select
Selection.Insert Shift:=xlDown
Rows(i & ":" & i).Select
Selection.Copy
Range("A" & i + 1).Select
ActiveSheet.Paste
End Sub

Aber da habe ich ja eben auch das Problem mit dem "automatisch" ausgeführtem Makro.

Gruß
Volker

Antwort 3 von Hajo_Zi vom 02.03.2021, 13:26 Options

Hallo Volker,

Option Explicit

Sub XZKOPIE()
i = ActiveCell.Row
Rows(i + 1 & ":" & i + 1).Insert Shift:=xlDown
Rows(i & ":" & i).Copy Range("A" & i + 1)
End Sub

Gruß Hajo

Antwort 4 von korfuweb vom 02.03.2021, 13:34 Options

Klasse !

Funktioniert soweit, er führt zwar das "automakro" immer noch aus aber jetzt zumindest nachdem er die Zeile eingefügt hat. dait kann ich ja im Moment noch leben.

Nur noch eine kurze Frage, kann ich dem "Kopier" makro irgendwie sagen, das er immer die Zeile 1999 an die aktuelle Stelle einfügen soll?
(Somit krieg ich dann immer ne schöne Leerzeile incl. den enthaltenen Formeln!

Gruß
Volker

Antwort 5 von nighty vom 02.03.2021, 13:40 Options

hi all ^^

vielleicht hilfreich

grus nighty

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Selection.Count < 2 Then
        If Not Intersect(Target, Range("B1:B3000")) Is Nothing Then Call CopyPA
    End If
    Application.EnableEvents = True
End Sub

Antwort 6 von korfuweb vom 02.03.2021, 16:18 Options

@ nighty

Danke für Deine Antwort

könntest du mir deinen Code mal bischen erläutern !
Will das ja schließlich lernen und mich würde da schon interessieren was der Code genau macht.
Gruß
Volker

Antwort 7 von nighty vom 02.03.2021, 19:32 Options

hi volker ^^

bin aber nicht so gut im beschreiben :-))

gruss nighty

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    '1) schaltet ein ereignis ab,um einen erneuten auftuf innerhalb des ereignisses zu umterbinden
    Application.EnableEvents = False
    '2)sollte ein bereich kopiert und eingefuegt werden,wird das ereignis ausgeloest,hier bewirkt die abfrage das dein code nur bei einer einzelnen zelle (wechsel des inhaltes) ausgefuehrt wird,daher <2 waere eine einzelne zelle
    If Selection.Count < 2 Then
        If Not Intersect(Target, Range("B1:B3000")) Is Nothing Then Call CopyPA
    End If
    '1) schaltet ein ereignis wieder an
    Application.EnableEvents = True
End Sub

Ähnliche Themen

Ausstieg Makro + allgem. Makro-Frage
Tomschi  28.08.2007 - 51 Hits - 2 Antworten

makro suche
gast68  11.09.2007 - 56 Hits - 1 Antwort

Makro SUMME
RR87  18.09.2007 - 25 Hits - 5 Antworten

Makro vereinfachen
Aynaet  20.09.2007 - 48 Hits - 6 Antworten

Makro
kurtl  10.11.2008 - 76 Hits - 14 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026