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

Userform - ShowModal

Userform - ShowModal
26.08.2002 18:40:51
Herbert
hallo forum,
gibt es die userform-eigenschaft "showmodal" erst ab excel 9.0
ich habe sie unter excel 8.0(office'97)nicht gefunden.
oder wird sie unter 8.0 anders bezeichnet.
danke
gruß herbert

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Userform - ShowModal
26.08.2002 18:52:06
Axel
Hallo Herbert,

diese Eigenschaft gibt es in der Tat erst ab Office2000.

Mit folgendem Code kannst Du aber auch in Office97 ein ungebundenes Formular aufrufen. Einfach ins Modul für die Userform kopieren.

Gruß
Axel



Re: Userform - ShowModal
26.08.2002 19:16:54
L.Vira
Na ja, so richtig nichtmodal wie ab Excel 2000 ist das nicht, weil Symbol/Menüleisten nicht verfügbar sind.
Re: Userform - ShowModal
26.08.2002 19:24:39
Herbert
hallo axel,
ich kann es erst morgen probieren,
ich habe aber bereits diesen Code zum ausblenden der titelleiste
in der userform:

Private Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type

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

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
   (ByVal hwnd As LongByVal nIndex As LongAs Long

Private Declare Function SetWindowLong _
   Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, _
   ByVal nIndex As LongByVal dwNewLong As LongAs Long

Private Declare Function DrawMenuBar Lib "user32" ( _
   ByVal hwnd As LongAs Long

Private Function fncHasUserformCaption(bState As Boolean)
   Dim Userform_hWnd As Long
   Dim Userform_Style As Long
   Dim Userform_Rect As RECT
   Const GWL_STYLE = (-16)
   Const WS_CAPTION = &HC00000
   Userform_hWnd = FindWindow( _
      lpClassName:=IIf(Val(Application.Version) > 8, _
      "ThunderDFrame", "ThunderXFrame"), _
      lpWindowName:=Me.Caption)
   Userform_Style = GetWindowLong(hwnd:=Userform_hWnd, _
      nIndex:=GWL_STYLE)
   If bState = True Then
      Userform_Style = Userform_Style Or WS_CAPTION
   Else
      Userform_Style = Userform_Style And Not WS_CAPTION
   End If
   Call SetWindowLong(hwnd:=Userform_hWnd, nIndex:=GWL_STYLE, _
      dwNewLong:=Userform_Style)
   Call DrawMenuBar(hwnd:=Userform_hWnd)
End Function

     

danke
gruß herbert

Anzeige
Re: Userform - ShowModal
26.08.2002 19:38:10
Herbert
das würde nichts machen,weil die Menü-u.Symbolleisten sowieso ausgeblendet werden,da ja die Userform als menü dient.
was meinst du übrigens genau mit "nicht verfügbar sind",
heißt das,ich brauche sie beim öffnen der datei nicht ausblenden,kann ich sie beim schließen der datei überhaupt einblenden!
gruß herbert



Re: Userform - ShowModal
26.08.2002 20:04:06
L.Vira
Wenn du unter E 2000 ein userform nicht modal anzeigst, kannst du
im Tabellenblatt ganz normal arbeiten, also auch die Symbolleisten benutzen. Das ist bei dem Code der dir gepostet wurde nicht so.
Re: Userform - ShowModal
26.08.2002 20:13:56
Herbert
das weis ich,es ging um Excel 8.0 ('97)
gruß herbert
Anzeige
Danke Axel,funktioniert perfekt
27.08.2002 19:08:24
Herbert
hallo Axel,
der code funktioniert,unten siehst du den gesamten code mit
dem ausblenden der titelleiste.
L.Vira hate recht daß die symbolleisten nicht funktionieren,
ist aus genannten gründen kein problem.
nochmals Danke für deine hilfe
gruß herbert


Private Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
   ByVal lpClassName As String, _
   ByVal lpWindowName As StringAs Long
Private Declare Function SetWindowLong _
   Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, _
   ByVal nIndex As LongByVal dwNewLong As LongAs Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
   (ByVal hwnd As LongByVal nIndex As LongAs Long
Private Declare Function DrawMenuBar Lib "user32" ( _
   ByVal hwnd As LongAs Long
   
   
'###################################################


Private Declare Function EnableWindow Lib "user32" _
    (ByVal hwnd As LongByVal bEnable As LongAs Long
Private Declare Function FindWindowA Lib "user32" _
    (ByVal lpClassName As StringByVal lpWindowName As StringAs Long

Private Sub UserForm_Activate()
Call fncHasUserformCaption(False)
EnableWindow FindWindowA("XLMAIN", Application.Caption), 1
End Sub

'************************************************


Private Function fncHasUserformCaption(bState As Boolean)
   Dim Userform_hWnd As Long
   Dim Userform_Style As Long
   Dim Userform_Rect As RECT
   Const GWL_STYLE = (-16)
   Const WS_CAPTION = &HC00000
   Userform_hWnd = FindWindow( _
      lpClassName:=IIf(Val(Application.Version) > 8, _
      "ThunderDFrame", "ThunderXFrame"), _
      lpWindowName:=Me.Caption)
   Userform_Style = GetWindowLong(hwnd:=Userform_hWnd, _
      nIndex:=GWL_STYLE)
   If bState = True Then
      Userform_Style = Userform_Style Or WS_CAPTION
   Else
      Userform_Style = Userform_Style And Not WS_CAPTION
   End If
   Call SetWindowLong(hwnd:=Userform_hWnd, nIndex:=GWL_STYLE, _
      dwNewLong:=Userform_Style)
   Call DrawMenuBar(hwnd:=Userform_hWnd)
End Function

  
Anzeige
Re: Userform - ShowModal
27.08.2002 23:41:13
Herbert
hallo Axel,
ein kleines problem ist jetzt noch aufgetaucht.
man kann in die Tabelle keine werte eingeben.
das einzige was man kann,ist die werte mit der maus ziehen.
mit den pfeiltasten kann man auch nicht scrollen.
weis im moment nicht wie ich das aktivieren kann
danke
gruß herbert
Re: Userform - ShowModal
28.08.2002 17:02:29
Herbert
hallo Axel,
funktioniert entgültig,
ich habe die eingabe auf Office'97 vorerst nicht probiert,
bei Office 2000 funktionierte die eingabe mit diesem code nicht,
ich habe angenommen das ist bei office '97 auch der fall,
was aber nicht ist.
in Office'97 funktioniert auch die eingabe.
es wird zeit,daß wir uns von office'97 verabschieden...
aber officeXP wird auch wieder das eine oder andere problem bringen...
gruß herbert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige