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

Userform fix über API in EXCEL97 ???+ diverses

Userform fix über API in EXCEL97 ???+ diverses
24.11.2003 09:53:51
Zdena
Hallo zusammen,

ich habe in EXCEL 97 das Problem, dass eine Userform immer im Vordergrund bleiben soll und trotzdem auch die Tabelle im Hintergrund unabhängig davon aktiviert werden kann (editierbar). Bei Excel 2000 ist das wohl mit der Einstellung einer Eigenschaft der Userform möglich. Nicht jedoch bei EXCEL97!

In diesem Forum habe ich dann vor einiger Zeit den Tipp bekommen über API-Funktion das einzustellen:

'Declaration of the API function.
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal bEnable As Long) As Long

'Code executed when the UserForm is opened.
'Indicates that the main window is activated.
Dim hwndXL&
hwndXL = FindWindow("XLMAIN", Application.Caption)
If hwndXL <> 0 Then
EnableWindow hwndXL, 1
End If

Das klappt prima!! Brauche aber noch eine Anpassung:

1 Wie kann ich die Userform fixieren, d.h. der User kann sie auf dem
Bildschirm nicht mehr verschieben!

2 Wenn ich die Menübar von Excel benutzen will geht das nur, wenn ich einen
Doppelklick mache. Dann meldet sich der Office-Assisten und das Anpassen-
Dialog - Fenster. Wenn ich das wegklicke kann ich plötzlich wieder auf die
Menübar zugreifen! Wie kann ich das abstellen? Ich möchte jederzeit ganz
normal die Menübar ansprechen auch wenn diese Userform im Vordergrund
aktiviert ist.

3 Wenn ich die Exceldatei auf einem Laptop laufen lasse sollte die fixe
Userform autom. horizontale Scrollbars bekommen--> Wegen der geringeren
Auflösung passt nicht mehr alles auf den Bilschirm. Die Userform ist im
Prinzip funktional eine spezielle Kommandozentrale für die Tabelle.
Im "Laptopmodus" möchte ich über die horizontale Scrollbar Zugriff haben
auf alle enthaltenen Buttons.

Habt Ihr Ideen und könnt mir helfen? Ist jetzt ziemlich viel, was ich in einem Beitrag frage - ich weiß. Nehmt´s mir nicht übel :-) Würde mich wirklich freuen hier weiterzukommen. Im voraus besten Dank.

Schönen Gruß

Zdena:-)

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Teil 1
24.11.2003 10:01:09
Nepumuk
Hallo Zdena,
Die Userform fixirst du so:


Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const MF_BYCOMMAND = &H0
Private Const SC_MOVE = &HF010
Private Sub UserForm_Activate()
Dim hwndForm As Long, hwndMenu As Long
hwndForm = FindWindow(vbNullString, Me.Caption)
If hwndForm <> 0 Then
hwndMenu = GetSystemMenu(hwndForm, 0)
If hwndMenu <> 0 Then DeleteMenu hwndMenu, SC_MOVE, MF_BYCOMMAND
End If
End Sub



Code eingefügt mit: Excel Code Jeanie

Der Code muss in das Modul der Userform.
Gruß
Nepumuk
Anzeige
AW: Teil 1
24.11.2003 10:41:35
zdena
Hallo Nepumuk,

wirklich super. Das nenne ich fixiert. Es weicht keinen mm mehr!
Muss man halt wissen wie es geht. Du hast es gewußt! Danke Dir.
Vielleicht hast Du noch eine Idee zu Teil 2? Du weißt: ich versuche Prinzip Hoffnung :-)

Schönen Gruß

Zdena:-)
Teil 2 noch offen. Ein Fall für K.Rola?
24.11.2003 10:55:37
Nepumuk
Hallo Zdena,
ich denke das ist ein spezielles Problem von Excel97 und über das verfüge ich leider (oder Gott sei Dank?) nicht mehr. Mich wundert es so wie so, daß du auf die Symbolleiste noch irgendwie Zugriff hast.
Gruß
Nepumuk
AW: Teil 2 noch offen. Ein Fall für K.Rola?
24.11.2003 18:41:49
K.Rola
Hallo,

das geht zu machen, ist aber extrem abturzfreudig, daher keine
Tipps von mir dazu.

Gruß K.Rola
Anzeige
AW: Teil 2 noch offen. Ein Fall für K.Rola?
24.11.2003 19:19:17
Nepumuk
Hallo Zdena,
K.Rola hat schon recht, wenn's dauernd abstürzt ist's auch nicht lustig. Warum baust du dir die benötigten Funktionen aus der Symbolleiste nicht einfach in die Userform? Es werden ja nicht alle sein die es gibt.
Gruß
Nepumuk
AW: Teil 2 noch offen. Ein Fall für K.Rola?
24.11.2003 21:22:23
K.Rola
Hallo,

nicht der Gebrauch der Symbolleisten, schon das nicht modale Anzeigen
der userform in Excel 97 ist absturzfeudig.

Fruß K.Rola
AW: Teil 2 noch offen. Ein Fall für K.Rola?
24.11.2003 22:13:44
Nepumuk
Hallo K.Rola,
kannst du mir das erklären, Zdena schreibt, das er nach einem Doppelklick auf die Symbolleiste..... Ich kann da klicken was ich will ich bekomme nur einen Beep. Zumindest bei modaler Anzeige. Ist das in 97 nicht der Fall?
Und noch eine Frage zu einem Beitrag ziemlich weit unten. Wenn ich da was reinschreibe, sehe ich nur z.B. eine 2 und nicht 0x00000002 (2). Muss ich das hexadezimal schreiben (Hex(2))? So viel will ich da nicht herum experimentieren, am Schluss zerschieße ich mir noch die Datenbank.
Gruß
Nepumuk
Anzeige
AW: Teil 2 noch offen. Ein Fall für K.Rola?
24.11.2003 23:20:10
K.Rola
Hallo,

du musst natürlich erst den Code zur pseudo- nichtmodalen Anzeige
ausgeführt haben.

"Und noch eine Frage..."
Wenn du mich sehen könntest, sähest du mich etwas ratlos:
"Und noch eine Frage zu einem Beitrag ziemlich weit unten"

ich weiß nicht, was du da meinst?

Gruß K.Rola
AW: Teil 2 noch offen. Ein Fall für K.Rola?
25.11.2003 17:35:25
Nepumuk
Hallo K.Rola,
da ging es um: Key = "HKCU\Software\Microsoft..................
Gruß
Nepumuk
Teil 3
24.11.2003 10:18:19
Bärnd
Hallo Zdena,

unter NT, w2k oder XP erhältst Du mit Environ("COMPUTERNAME") den Namen des Rechners. Es gibt bestimmt auch eine API-Funktion, um die Bildschirmauflösung auszulesen .. aber die schüttele ich nicht aus den Ärmel.
Um die Scrollbars zu vermeiden und auch am Laptop alles im Blick zu behalten, könntest Du auch die .Zoom Eigenschaft der Userform auf 75 setzen.

Ciao

der Bärnd
Anzeige
AW: Teil 3
24.11.2003 10:38:59
Zdena
Hallo Bärnd,

Danke Dir für Deinen Tip. Das mit dem Zoom-Faktor ist vielleicht garnicht schlecht :-)
Ich werde es mal so machen...

Ciao

Zdena:-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige