Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform immer im Vordergrund

Userform immer im Vordergrund
07.09.2003 17:25:50
Björn
Huhu all,

noch ein Versuch @ Excelexperts hier im Forum. Gibt es tatsächlich keine Möglichkeit eine Userform immer im Vordergrund zu halten? Mit VB scheint das sehr leicht darstellbar zu sein, vergleiche etwa: http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0021.shtml. Dass es mit Excel auch gehen soll, wird vierlerorten behauptet, aber die anfgeführten Codes, zB.: http://beta.experts-exchange.com/Applications/MS_Office/Q_20649631.html#8735433 oder http://www.xldennis.com/XLForst(vba).htm oder http://www.tippsammlung.de/softw/excel/admin001.html bringen auf meinem Rechner nicht das gewünschre Ergebnis. Zwar wird die userform im Vodergrund geöffnet und ist zunächst auch aktiv und dominant gegenüber excel und der VB-Entwicklerumgebung. Aber nur ein Klick neben die userform auf ein darunterliegendes Fenster holt letzteres on Top. Ich wäre sehr dankbar für jeden Tipp, wie man eine Userform vielleicht doch immer im Vordergrund halten kann.

Viele Grüße

Björn

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Userform immer im Vordergrund - VBA
07.09.2003 18:34:48
GraFri
Hallo



Option Explicit

Private Declare Function FindWindow Lib "user32" _
  Alias "FindWindowA" (ByVal lpClassName As String, _
  ByVal lpWindowName As StringAs Long

Private Declare Function SetWindowPos Lib "user32" _
  (ByVal hwnd As LongByVal hWndInsertAfter As Long, _
   ByVal As LongByVal As LongByVal cx As Long, _
   ByVal cy As LongByVal wFlags As LongAs Long

Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2


'mittels Button bzw. bei 'UserForm_Initialize' aufrufen
Private Sub cmdImmerAnSpitze_Click()
  FensterPosition Me.Caption, True
End Sub

Private Sub cmdNormal_Click()
  FensterPosition Me.Caption, False
End Sub

Sub FensterPosition(ByVal strTitel As String, Modus As Boolean)
' Übergabe von UserForm funktioniert anscheinend nicht,
' Caption-Eigenschaft steht in Kopie nicht zur Verfügung
  Dim lngRet As Long
  Dim hwnd As Long
  hwnd = FindWindow(vbNullString, strTitel)
  If hwnd = 0 Then
     MsgBox "Fenster wurde nicht gefunden!"
     Exit Sub
  End If

  If Modus = True Then
    lngRet = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
             FLAGS)
  Else
    lngRet = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
             FLAGS)
  End If
End Sub


     Code eingefügt mit Syntaxhighlighter 2.4


mfg, GraFri
Anzeige
AW: Userform immer im Vordergrund - VBA
07.09.2003 19:22:04
Björn
Huhu GraFri,

Danke für Deine Hilfe! Allerdings klappt auch dein Code nicht so recht. Läuft er auf Deinem Rechner?? Wenn ich den code in ein Standardmodul einfüge und in ein Workbook eine userform einfüge, in der mit dem userform_initialize der Befehl cmdImmerAnSpitze_Click aufgerufen werden soll, geht einiges schief. Zunächst muß ich das Private im Befehl löschen, damit der Befehl aus dem Initialisierungsprozeß aufgerufen werden kann. Dann bekomme ich für die Variable Me eine Fehlermeldung. Ich habe den Code daher so umgestrickt, wie ich denke, daß Du ihn gemeint hast. Dann läuft zwar alles ohne Fehlermeldung - aber die Userform ist immer noch im Vordergrund verankert :-((((. Ich habe die Datei mit den Paar kleinen Modifikationen mal hoch. Sie ist abgelegt unter:

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

Es wäre nett, wenn Du noch mal was dazu schreiben könntest! Vielen herzlichen Dank.

Viele Grüße

Björn

P.S.:
Ich habe gerade erfahren, daß es wohl wirklich ein xl97-Problem ist. Der Code, an den oben bezeichneten Stellen im Netz läuft wohl mit xl2000 problemlos. Nur nützt mir das natürlich recht wenig, da auf den zielrechnern 97 installiert ist
Anzeige
AW: Userform immer im Vordergrund - VBA
07.09.2003 19:32:31
GraFri
Hallo

Kann den Code leider erst morgen in meiner Firma unter Excel 97 kontrollieren. Bei mir privat unter Excel 2000 läuft er fehlerfrei.

Sorry, falls ich eine Lösung morgen unter Excel 97 finde, melde ich mich noch einmal.

mfg, GraFri
AW: Userform immer im Vordergrund - VBA
07.09.2003 20:02:06
Björn
Huhu Grafri,

trotzdem Danke für die Hilfe!!! Ich denke, unter xl 97 ist es schwierig, den Code zum Laufen zu bringen, wenn auch vielleicht nicht unmöglich, vgl. zB.:
http://support.microsoft.com/default.aspx?scid=kb;en-us;101325 ganz am Ende! Das Starten einer Anwendung aus xl 97 im on Top Mode klappt! Also müßte es doch auch möglich sein können, eine Userform in xl 97 on top aufzurufen? Oder ist das nicht zwingend so?

Vielen Dank nochmals

Gruß

Björn
Anzeige
AW: Userform immer im Vordergrund
10.09.2003 00:04:33
heinz
ich machs immer so

Application.WindowState = xlMaximized
UserForm1.Height = Application.Height
UserForm1.Width = Application.Width
UserForm1.Top = Application.Top
UserForm1.Left = Application.Left

269 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige