Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Userform blockiert Pfeiltasten | Herbers Excel-Forum


Betrifft: Userform blockiert Pfeiltasten von: Reinhard
Geschrieben am: 08.01.2010 10:29:37

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

  

Betrifft: AW: Userform blockiert Pfeiltasten von: Ramses
Geschrieben am: 08.01.2010 10:39:04

Hallo

"...Problem, beim Scrollen nach unten verschwindet der Kommentar fast ganz...."

Dann soll er das Fenster fixieren, dann bleibt die Zeile erhalten

Gruss Rainer


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Reinhard
Geschrieben am: 08.01.2010 11:00:56

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


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Ramses
Geschrieben am: 08.01.2010 11:10:36

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


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Reinhard
Geschrieben am: 08.01.2010 11:29:43

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


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Ramses
Geschrieben am: 08.01.2010 11:31:59

Hallo

Stell die Eigenschaft "ShowModal" der UF auf False.
Dann kannst du ganz normal in der Tabelle arbeiten.

Gruss Rainer


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Reinhard
Geschrieben am: 08.01.2010 11:40:59

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


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Ramses
Geschrieben am: 08.01.2010 12:15:32

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


  

Betrifft: Das ist die Lösung von: Reinhard
Geschrieben am: 08.01.2010 12:30:39

Hallo Rainer,

ich bedanke mich bei dir, natürlich auch bei Daniel :-)

Damit klappt es: https://www.herber.de/bbs/user/67076.xls

Gruß
Reinhard


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Daniel
Geschrieben am: 08.01.2010 11:48:38

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


  

Betrifft: API gefunden aber klappt irgendwie nicht von: Reinhard
Geschrieben am: 08.01.2010 12:15:51

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


  

Betrifft: hier ein Beispiel mit Api von: Tino
Geschrieben am: 08.01.2010 12:42:22

Hallo,

https://www.herber.de/bbs/user/67077.xls

Gruß Tino


  

Betrifft: AW: hier ein Beispiel mit Api von: Reinhard
Geschrieben am: 08.01.2010 12:50:41

Hallo Tino,

ich muß jetzt weg, teste es später in meiner mappe.

Gruß
Reinhard


  

Betrifft: was auch noch geht... von: Tino
Geschrieben am: 08.01.2010 14:00:35

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


  

Betrifft: Einfacher... von: Ramses
Geschrieben am: 08.01.2010 14:18:07

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


  

Betrifft: danke, ich habe jetzt nicht gewusst... von: Tino
Geschrieben am: 08.01.2010 14:37:18

Hallo,
das Application.hwnd von xl2000 schon unterstützt wird.

Gruß Tino


  

Betrifft: AW: danke, ich habe jetzt nicht gewusst... von: Reinhard
Geschrieben am: 08.01.2010 14:56:07

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


  

Betrifft: Hab ich nicht gesehen.... von: Ramses
Geschrieben am: 08.01.2010 17:08:10

Hallo

... wer arbeitet denn noch in Zeiten von 2010 mit 2000 :-) ?

Gruss Rainer


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Daniel
Geschrieben am: 08.01.2010 10:47:05

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


  

Betrifft: AW: Userform blockiert Pfeiltasten von: Reinhard
Geschrieben am: 08.01.2010 11:07:23

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


Beiträge aus den Excel-Beispielen zum Thema "Userform blockiert Pfeiltasten"