Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1272to1276
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

Zugewiesene Tastenkombi funktioniert nur einmal

Zugewiesene Tastenkombi funktioniert nur einmal
Tim
Hallo an alle,
ich habe der Taste F12 eine UserForm zugewiesen.
Das klappt auch, das komische ist nur, es klappt nur einmal.
Drücke ich nach dem ersten Schließen der UserForm erneut die Taste F12, dann passiert gar nichts.
Klicke ich irgendeine Zelle und dann auf F12, erscheint die UserForm wieder ganz normal.
Zur Info: In der UserForm befindet sich ein CommandButton, der die UserForm schließt und ein Makro startet.
Es sieht so aus, als ob Excel danach keine Zelle als aktiv erkennt, bis ich wieder in eine klicke.
Hat jemand eine Idee, woran das liegen kann und was ich tun muss, um nicht jedes Mal zuerst in eine beliebige Zelle klicken zu müssen, damit F12 funktioniert ?
VG und vielen Dank Euch im Voraus für jeden Tipp dazu,
Tim

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zugewiesene Tastenkombi funktioniert nur einmal
22.07.2012 11:05:06
Matze,Matthias
Hallo Tim,
arbeitest du mit eine Worksheet Change Ereigniss? Wir sehen keine Code um das zu verfolgen,
geschweige deine Datei wenn du sie freigeben möchtest.
Matze
AW: Zugewiesene Tastenkombi funktioniert nur einmal
22.07.2012 11:11:42
Tim
Hallo Matze,
Datei und Code sind relativ groß, deswegen wollte ich hier nicht alles wegen einer Frage posten.
In diesem Blatt verwende ich folgende Funktionen - hilft das weiter ?
Grundsätzlich funktioniert alles, auch das Starten der UserForm über F12, nur dass ich beim zweiten Mal vorher erst in irgendeine Zelle klicken muss.
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

Private Sub createImageContainer()
End Sub
VG,
Tim
Anzeige
AW: Zugewiesene Tastenkombi funktioniert nur einmal
22.07.2012 11:17:05
Matze,Matthias
Hallo Tim,
1. du hättest mit deiner weiteren Frage ruhig im alten Treadt weiter machen können,
da wurde dir von Gerd doch schon geholfe´,
2. vermutlich sind die Ereignisse Schuld, aber ohne ....Codezeilen....
Ich bin auch raus, sowie Hajo,
Gruß Matze
AW: Zugewiesene Tastenkombi funktioniert nur einmal
22.07.2012 11:20:29
Tim
...hier der Code des Tabellenblatts:
Option Explicit
'image settings for Sub Worksheet_SelectionChange
Const MaxWidth As Long = 471 'max. width for images
Const MaxHeight As Long = 500 'max. height for images
Const PosLeft As Long = 553 'image positon from left
Const PosTop As Long = 143 'image position from top
Private objImg As Object
Dim mstrOld As String
Dim RaBereich As Range
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
' Action: Creates external log file (.txt) for entered search terms for each user, as defined  _
in Settings
Dim strDatei As String, strText As String
Dim intFile As Integer, rng As Range
intFile = FreeFile
'log file title and saving location, as defined in Settings
strDatei = Worksheets(2).Range("I24") & Environ("USERNAME") & ".txt" _
If MakeSureDirectoryPathExists(strDatei)  0 Then
If Target.Address(0, 0) = "E2" Then
Open strDatei For Append As #intFile
If LOF(intFile) = 0 Then
'log file headers
strText = "Entered Search Terms:"
Print #intFile, strText
End If
If Range("E2")  mstrOld Then
'log file content
Print #intFile, Range("E2"), Range("E6")
End If
Close #intFile
End If
Else
' message to appear if log file cannot be saved
MsgBox "No Search Log saved as saving location not found !", vbExclamation, "Error  _
Message"
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Action 1: Blocks marking of more than one cell if user is not Administrator, as defined in  _
Users list
' Action 2: Sets column F to display Action Details (Repeat Offenders) by mouse click (a)
'           sets column K to display Policy Details by mouse click (b)
' Action 3: Checks for matching images, resizes saved images and displays them as follows
'           sets column C to display matching images by mouse click
'           removes previously displayed image on mouse click elsewhere than column C
If Worksheets(2).Range("I17")  "Administrator" Then
If Target.Count > 1 Then Target(1).Select
End If
'settings for Actions 2a and 2b
If Target.Column = 11 Then
If Cells(Target.Row, 20).Value  "" Then
UserForm3.TextBox31 = Cells(Target.Row, 20)
UserForm3.TextBox32 = Cells(Target.Row, 21)
UserForm3.Show
End If
End If
'image saving location, as defined in Settings
Dim imagePath As String
imagePath = Worksheets(2).Range("I23").Value
Dim dblWidth As Double, dblHeight As Double
Dim strFile As String
Set RaBereich = Intersect(Range("E2"), Range(Target.Address))
If Not RaBereich Is Nothing Then
mstrOld = Range("E2")
End If
If Not objImg Is Nothing Then objImg.Visible = False
DoEvents
'settings for Action 3
If Target.Column = 3 And Target.Count = 1 Then
If Target  "" Then
strFile = imagePath & IIf(Right(imagePath, 1)  "\", "\", "") & Target.Value & ". _
jpg"
If InStr(strFile, vbLf) > 0 Then
strFile = Left(strFile, InStr(strFile, vbLf) - 1)
End If
If Dir(strFile)  "" Then
On Error Resume Next
If objImg Is Nothing Then Set objImg = Me.OLEObjects("imageContainer")
On Error GoTo 0
If objImg Is Nothing Then createImageContainer
With objImg
.Object.AutoSize = True
.Object.Picture = LoadPicture(strFile)
.Top = ActiveWindow.VisibleRange.Top + PosTop
.Left = PosLeft
If .Height > MaxHeight Or .Width > MaxWidth Then
.Object.AutoSize = False
dblWidth = MaxWidth / .Width
dblHeight = MaxHeight / .Height
If dblWidth 

Private Sub createImageContainer()
' Action: Creates image container
' image container settings
Set objImg = Me.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=0, Top:=0, Width:=0, Height:=0)
With objImg
.Visible = False
.Object.PictureSizeMode = 1
.Name = "imageContainer"
End With
End Sub
VG, Tim
Anzeige
AW: Ursache gefunden ?
22.07.2012 12:19:11
Tim
Hallo,
ich glaube, ich habe die Ursache gefunden - noch nicht aber die Lösung dafür:
Beim Öffnen der UserForm wird mit folgendem Codeteil der Cursor in der TextBox platziert:
UserForm6.SearchTerm.SetFocus
Ich vermute, dass der Cursor auch nach dem Schließen der UserForm noch dort als aktiv stehen bleibt (trotz Schließen der UserForm) und dadurch keine Zelle als aktiv erkannt wird, solange bis ich in eine klicke.
Kann das die Ursache sein und lässt sich das beim Schließen der UserForm irgendwie aufheben ?
VG und nochmals danke,
Tim
AW: Ursache gefunden ?
22.07.2012 14:05:33
Tim
Problem gelöst...

246 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige