[Strg]+[V] ausgehebelt. Wie kann ich das verhindern?

15/11/2007 - 22:09 von Joachim Jörgens | Report spam
Hallo NG,

Software: Windows XP Prof. SP2, Excel 2007

in einem Add-In habe ich ein Klassenmodul mit folgendem Code:

Public WithEvents App As Application

Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)
Call procReadValue(ActiveCell.Value)
End Sub

Die Routine procReadValue sowie weitere Routinen befinden sich im Modul1,
wo weitere Berechnungen durchgeführt werden.

Mein Problem:
Ist das vorstehende Add-In aktiv, funktioniert die Tastenkombination
[Strg]+[C] (kopieren)
zwar noch. Sobald ich aber das Kopierte in einem anderen Bereich einfügen
will, löst die
Selektion die Add-In-Routine App_SheetSelectionChange aus und die
Tastenkombination
[Strg]+[V] (einfügen) funktioniert nicht mehr.
Wie vermeide ich das?

Viele Grüße
Joachim
 

Lesen sie die antworten

#1 Thomas Ramel
16/11/2007 - 07:20 | Warnen spam
Grüezi Joachim

"Joachim Jörgens" schrieb:

Software: Windows XP Prof. SP2, Excel 2007

in einem Add-In habe ich ein Klassenmodul mit folgendem Code:

Public WithEvents App As Application

Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)
Call procReadValue(ActiveCell.Value)
End Sub

Die Routine procReadValue sowie weitere Routinen befinden sich im Modul1,
wo weitere Berechnungen durchgeführt werden.

Mein Problem:
Ist das vorstehende Add-In aktiv, funktioniert die Tastenkombination
[Strg]+[C] (kopieren)
zwar noch. Sobald ich aber das Kopierte in einem anderen Bereich einfügen
will, löst die
Selektion die Add-In-Routine App_SheetSelectionChange aus und die
Tastenkombination
[Strg]+[V] (einfügen) funktioniert nicht mehr.
Wie vermeide ich das?



Eventuell gar nicht, da die Zwischenablage und der Stag unter gewissen
Umstànden gelöscht wird, wenn Du VBA-Routinen ausführst.

Ich habe den Aufruf und die Übergabe auf Workbook-Ebene mal simuliert und
konnte noch immer die kopierten Daten einfügen. Daher denke ich, dass sonstwo
in deinem Code die Ursache liegen muss.

Setze doch mal in der Zeile ' Call procReadValue(ActiveCell.Value)' einen
Halteppunkt und gehe dann mit F8 weiter. Beobachte dabei wann der Laufrahmen
in deiner Tabelle verschwindet, dann hast Du den Auslöser gefunden.

BTW:
Anstelle von 'Call procReadValue(ActiveCell.Value)' könntest (solltest?) Du
die übergebene Range-Variable 'Target' verwenden: ' Call
procReadValue(Target.Value)'

Mit freundlichen Grüssen

Thomas Ramel (@Web-Interface)
- MVP für Microsoft-Excel -

[Win XP Pro SP-2 / xl2003]

Ähnliche fragen