Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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

Userform blockiert Pfeiltasten

Userform blockiert Pfeiltasten
Reinhard
Hallo Wissende,
in einem anderen Forum wollte jmd. eine Lösung. Er wollte in der fixierten Zeile in einer Zelle einen vielzeiligen Kommentar in einer Zelle haben, der immer sichtbar ist.
Problem, beim Scrollen nach unten verschwindet der Kommentar fast ganz.
Ich habe dann etwas gebastelt mit einer UF als Ersatzkommentar. Klappt auch gut *find*
Mein Problem, erscheint die UF, so sind die Pfeiltasten zum Zellenwechsel unbrauchbar, es tut sich nix.
https://www.herber.de/bbs/user/67068.xls
Zweite Frage, Top der UF bezieht sich ja auf den Bildschirm. Top einer Zelle auf den Zellenbereich.
Wie positioniere ich die UF, also Top und Left auf Top und Left einer Zelle, hier F1?
Danke ^ Gruß
Reinhard
AW: Userform blockiert Pfeiltasten
08.01.2010 10:39:04
Ramses
Hallo
"...Problem, beim Scrollen nach unten verschwindet der Kommentar fast ganz...."
Dann soll er das Fenster fixieren, dann bleibt die Zeile erhalten
Gruss Rainer
AW: Userform blockiert Pfeiltasten
08.01.2010 11:00:56
Reinhard
Hallo Rainer,
Zeile1 ist ja fixiert. z.B. in E1 steht ein dauernd sichtbarer Kommentar mit 16 Zeilen. Diese Kommentarzeilen verschwinden wenn man nach unten scrollt. Es bleibt nur kleiner Rest in Zellenhöhe von F1 übrig vom Kommentar.
Gruß
Reinhard
AW: Userform blockiert Pfeiltasten
08.01.2010 11:10:36
Ramses
Hallo
Sorry,.. Missverständnis.
Ich dachte der Kommentar steht IN der ZELLE ! Das Kommentarfeld wird weggescrollt. Das ist korrekt.
Alternative Zeilenhöhe vergrössern.
Aber ehrlich gesagt macht es doch keinen Sinn ein Object darzustellen, das dann wiederum Teile der Daten verdeckt,... oder ?
Denn die Daten stehen beim scrollen dann ja UNTER dem Obejct und sind nicht sichtbar.
Als
Irgendwie verstehe ich die Anforderung nicht ganz.
Da bietet sich eine Msgbox, oder besser eine Userform, mit dem Kommentar die bei anklicken der Zelle erscheint eher an. Die verschwindet dann wieder und kann vom Benutzer so positioniert werden wo sie nicht stört.
Gruss Rainer
Anzeige
AW: Userform blockiert Pfeiltasten
08.01.2010 11:29:43
Reinhard
Hallo Rainer,
tja, der Kunde ist König, auch in einem Forum :-) Ich sehe einige Anfragen wo ich mich frage was soll das *gg*
:::Da bietet sich eine Msgbox, oder besser eine Userform, mit dem Kommentar die bei anklicken der Zelle erscheint eher an:::
Genau das habe ich ja gemacht, sobald eine Zelle in Spalte E gewählt wird erscheint die UF.
Dann fiel mir auf daß die Pfeiltasten in dem Moment wirkungslos sind.
Und das interessiert mich schon sehr, völlig unabhängig von der Kommentarproblematik bzw. der Ausgangsfrage im anderen Forum.
Was alos muß man machen damit in dem Moment der UF-Einblendung auch die Pfeiltasten wieder gehen?
Man kann auf die ausgewählte Zelle mit der Maus klicken, geht, aber unpraktisch.
In Userform_intialize habe ich unten Activecell.Select eingebaut, bringt nix.
TakeFocusOnClick oder wie das heißt haben die UF und der Label nicht.
Gruß
Reinhard
Anzeige
AW: Userform blockiert Pfeiltasten
08.01.2010 11:31:59
Ramses
Hallo
Stell die Eigenschaft "ShowModal" der UF auf False.
Dann kannst du ganz normal in der Tabelle arbeiten.
Gruss Rainer
AW: Userform blockiert Pfeiltasten
08.01.2010 11:40:59
Reinhard
Hallo Rainer,
das habe ich doch wenn ich die UF anzeige mit
Userform2.show 0
Äh, meine Mappe hast du noch nicht angeschaut? :)
Gruß
Reinhard
AW: Userform blockiert Pfeiltasten
08.01.2010 12:15:32
Ramses
Hallo
Nein,... wozu. Deine Frage konnte bisher auch so beantwortet werden.
Wenn ich Daniel, und damit dein Problem richtig verstehe, willst du den Focus direkt wieder an die Mappe übergeben.
Probiers mal so
Private Sub UserForm_Activate()
AppActivate Application.Caption, False
ActiveCell.Select
End Sub
Gruss Rainer
Anzeige
AW: Userform blockiert Pfeiltasten
08.01.2010 11:48:38
Daniel
Hi
macht er ja beim Aufruf mit .Show 0
das Problem ist, das der Focus auf der Userform liegt und damit alle Tastatureingaben auf die Userform wirken.
beim Klicken mit der Maus auf eine Zelle wechselt der Focus automatisch auf Excel und es kann normal weitergearbeitet werden.
die Frage ist, wie man per Makrobefehl den Focus von der Userform auf Excel umschaltet.
Gruß, Daniel
Anzeige
API gefunden aber klappt irgendwie nicht
08.01.2010 12:15:51
Reinhard
Hallo,
ich fand dieses:
http://www.ms-office-forum.net/forum/archive/index.php?t-155343.html
Unten in Userform_Initialize oder auch in ansonstem leerem Userform_Activate
habe ich
Call SetExcelFokus
getestet, es kappt nicht,
SetForegroundWindow (Application.hwnd)
wird bemängelt (Fehler 438, Objekt unterstützt diese Eigenschaft nicht...)
in einem Modul:

Public Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Sub SetExcelFokus()
'Application.Goto Reference:=ActiveCell 'Worksheets("Tipprunde").Range("A4"), Scroll:=True
SetForegroundWindow (Application.hwnd)
Application.WindowState = xlMaximized
End Sub

Gruß
Reinhard
Anzeige
AW: hier ein Beispiel mit Api
08.01.2010 12:50:41
Reinhard
Hallo Tino,
ich muß jetzt weg, teste es später in meiner mappe.
Gruß
Reinhard
was auch noch geht...
08.01.2010 14:00:35
Tino
Hallo,
kommt als Code in UserForm1
Option Explicit 
 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
 
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long 
 
Private Sub UserForm_Activate() 
Dim HwndExcel As Long 
HwndExcel = FindWindow("XLMAIN", Application.Caption) 
SetForegroundWindow HwndExcel 
End Sub 
 
Die ShowModal Eigenschaft muss auf False stehen,
sonst kannst Du zwar in Excel Scrollen aber nicht in die Zellen schreiben.
Gruß Tino
Anzeige
Einfacher...
08.01.2010 14:18:07
Ramses
Hallo Tino
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Private Sub UserForm_Activate()
SetForegroundWindow Application.hwnd
End Sub
Bei Aufruf über einen Commandbutton muss die Eigenschaft "TakeFocusOnclick" auf False stehen
Gruss Rainer
danke, ich habe jetzt nicht gewusst...
08.01.2010 14:37:18
Tino
Hallo,
das Application.hwnd von xl2000 schon unterstützt wird.
Gruß Tino
AW: danke, ich habe jetzt nicht gewusst...
08.01.2010 14:56:07
Reinhard
Hallo Tino,
wird es auch nicht, zumindest kommt in XL2000 Fehler 438 bei
Sub tt()
MsgBox Application.Hwnd
End Sub
Zum Testen kam ich noch nicht, muß erstmal wieder auftauen, war gefühlte 10 Stunden bei gefühlten minus 30 Grad draußen *brrr*
Mist Wind, der soll doch im schwülen Sommer kommen wenn hier die Luft steht :-)
Gruß
Reinhard
Anzeige
Hab ich nicht gesehen....
08.01.2010 17:08:10
Ramses
Hallo
... wer arbeitet denn noch in Zeiten von 2010 mit 2000 :-) ?
Gruss Rainer
AW: Userform blockiert Pfeiltasten
08.01.2010 10:47:05
Daniel
Hi
das Positionieren ist nicht so ganz einfach, mir würde da nur einfallen, die Top-Werte der Applikation, des Fensters und der Zelle zusammenaddieren und noch einen Zuschlag für Ränder und Symbolleisten zu machen, um auf den Bildschirmtopwert der Zelle zu kommen, allerdings ist das auch nicht genau, da Ränder und Symbolleisten sich ja ändern können.
Das geht wahrscheinlich auch anders, aber mir fällt nix besseres ein.
Vielleicht löst du beide Probleme ganz einfach, indem du anstelle der Userform ein Textfeld aus den Grafikelementen verwendest.
Das kannst du einfach auf die richtige Position schieben und das Problem mit den Pfeiltasten ist auch vom Tisch.
Gruß, Daniel
Anzeige
AW: Userform blockiert Pfeiltasten
08.01.2010 11:07:23
Reinhard
Hallo Daniel,
das mit der Positionierung habe ich mir schon gedacht daß es so kompliziert wird wie du beschreibst.
Ein Textfeld aus "Zeichnen" geht nicht, das verschwindet beim Scrollen nach unten genau wie das Kommentarfeld.
Auch wenn ich bei Eigenschaften "von Zellgröße und osaition unabhängig" einstellle.
Dummerweise ruft das Scrollen kein Ereignis hervor daß man abfangen könnte und so eine Textbox dann neu positionieren könnt.
Ich könnte a noch die Scrollbalken entfernen und durch Laufleisten aus der Toolbox ersetzen. Aber da warte ich erst mal ab, vielleicht kommt ja noch was zu der UF-Lösungg.
Gruß
Reinhard
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige