Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

gedrückte Strg-Taste

gedrückte Strg-Taste
Lorenz
Hallo!
Ich habe untenstehenden Code im "Worksheet_SelectionChange" stehen, wobei "And Shift = 1" für mit gedrückter Strg-Taste stehen sollte.
If Not Intersect(Range(Target.Address), RaBereich) Is Nothing And Shift = 1 Then Meine_UF.Show
Was muß statt "And Shift = 1" stehen, daß der Code dementsprechend funktioniert?
Danke Lorenz

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: gedrückte Strg-Taste
05.12.2009 17:56:32
Josef
Hallo Lorenz,
und woher kommt "Shift" bzw. woher bezieht es seinen Wert?
Gruß Sepp

AW: gedrückte Strg-Taste
05.12.2009 18:25:58
Lorenz
Hallo Sepp.
Habe die Codezeilen aus mouse-down-ereignis für ein image abgeschaut, weil es ja da funktionierte
Ich hatte übersehen, daß Shift as integer deklariert ist. "Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)"
If Shift = 1 Then.......
Wahrscheinlich lässt sich mein "Wunsch" nicht realisieren, da "ZellereignisKlick in UF"
Grüsse
Lorenz
Anzeige
AW: gedrückte Strg-Taste
05.12.2009 18:45:39
Josef
Hallo Lorenz,
du kannst nicht einfach einen Parameter einer Ereignisprozedur in einer anderen einsetzen.
Das was du willst geht, aber Shift ist dazu eher ungeeignet, aber probier's mal.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" _
  (ByVal vKey As Long) As Integer

Private Const VK_SHIFT As Long = &H10


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim RaBereich As Range
  Set RaBereich = Range("A1:B5")
  If Not Intersect(Target, RaBereich) Is Nothing Then
    If GetAsyncKeyState(VK_SHIFT) <> 0 Then Meine_UF.Show
  End If
End Sub

Gruß Sepp

Anzeige
AW: gedrückte Strg-Taste
05.12.2009 19:27:00
Lorenz
Hallo Sepp!
Beim Probieren deines Codes stellte sich heraus, daß Shift ist genauso wie Strg in Excel ungeeignet ist, es löst natürlich f. div Markierungen & mehrfachmarkierungen dementsprechende funktion aus. Kannst du mir verraten wo man statt "&H10" zum Beispiel für Taste "y" den wert findet?
Danke Lorenz
AW: gedrückte Strg-Taste
05.12.2009 19:40:42
Josef
Hallo Lorenz,
eine Buchstabentaste ist auch ungeeignet, damit schreibst du ja in die Zellen
F3 geht z.B. so.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" _
  (ByVal vKey As Long) As Integer

Private Const VK_F3 As Long = &H72


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim RaBereich As Range
  Set RaBereich = Range("A1:B5")
  If Not Intersect(Target, RaBereich) Is Nothing Then
    If GetAsyncKeyState(VK_F3) <> 0 Then Meine_UF.Show
  End If
End Sub

VK- Konstanten findest du im Netz.
Z.B.: Hier http://www.help-guide.de/win_virtual_key.htm
Gruß Sepp

Anzeige
AW: gedrückte Strg-Taste
05.12.2009 19:58:48
Lorenz
Hallo Sepp.
F3 ist auch schlecht löst "Namen einfügen" aus
Danke für Info über Link "VK- Konstanten"
Werde halt einige key´s ausprobieren.
Grüße
Lorenz
AW: gedrückte Strg-Taste
05.12.2009 18:46:43
Daniel
Hi
nein das wird so nicht funktionieren.
Excel zeigt, dir ja, welche Variablen du zu dem Ereignis abfragen kannst.
SELECTION_CHANGE stellt nur die Variable TARGET zur verfügung, dh du kannst nur feststellen, welcher Zellbereich markiert ist, mehr nicht!
was du prüfen könntest, wäre aber die Anzahl der markierten Zellen: mit TARGET.CELLS.COUNT
ist der Wert grösser als 1, dann hat der Anwender mehr als eine Zelle auf einmal markiert und hierfür auch die SHIFT- oder STRG-Taste gedrückt.
Gruß, Daniel
Anzeige
Sorry "Shift" nicht "Strg"-Taste
05.12.2009 18:41:23
Lorenz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige