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

UF aus UF aufrufen

UF aus UF aufrufen
13.01.2009 17:56:45
Heinz
Hallo Leute
Ich möchte aus der UF "Eingabe" mit

Private Sub CommandButton3_Click()
Pruefung.Show
End Sub


Die UF "Pruefung aufrufen.
Bekomme aber dann beim Code Dim UF As New CUserForm
Die Meldung " Benutzerdefinierter Typ nicht definiert "
Könnte mir dazu jemand weiterhelfen ?
Danke
Heinz

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UF aus UF aufrufen
13.01.2009 18:02:00
Tino
Hallo,
was willst Du mit Dim UF As New CUserForm erreichen?
Gruß Tino
AW: UF aus UF aufrufen
13.01.2009 18:16:00
Heinz
Hallo Tino
In der UF Pruefung werden Werte eingegeben und in Sheets "Prüfungen" eingetragen.
Das ganze ist schon ein wenig Komplex.
Habe mal einen Teil der Datei hochgeladen.
Danke Heinz
https://www.herber.de/bbs/user/58348.zip
AW: UF aus UF aufrufen
13.01.2009 18:29:00
robert
hi,
ich habe die DIM zeile gelöscht und schon gehts
gruß
robert
AW: UF aus UF aufrufen
13.01.2009 18:33:00
Heinz
Hallo Robert
Aber wird die DIM im Code nicht gebraucht ?
Zum weiteren verarbeiten ?
Gruß
Heinz
AW: UF aus UF aufrufen
13.01.2009 18:48:17
robert
hi,
weiss der teufel warum das gegangen ist,ich habe nach Mourry gesucht-jetzt geht nichts mehr!
gruß
robert
Anzeige
AW: UF aus UF aufrufen-offen! owt
13.01.2009 18:49:56
robert
AW: Habe den Fehler gefunden - Sorry
13.01.2009 18:53:00
Heinz
Hallo Tino & Robert
Habe den Fehler gefunden !!!
Ich DEPP habe das Klassenmodule
" CUserForm " vergessen in die Mappe zu importieren.
Jetzt geht alles normal.
Sorry für meine Dummheit.
Danke euch beiden.
Gruß
Heinz
zum Glück...
13.01.2009 18:57:17
Tino
Hallo,
,ich bin Froh, habe schon an meinen VBA Kenntnissen gezweifelt.
Gruß Tino
AW: zum Glück...
13.01.2009 19:04:37
Heinz
Hallo Tino
Das Klassenmodul besagt: Das die UF nicht verschoben werden können usw..
Wenn es dich interessiert: Hier der Code von CUserForm
Nochmals Danke
Heinz
'Userform Ganzer Bildschirm, Minimiere,schliessen
Option Explicit
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" ( _
ByVal hMenu As Long, ByVal uFlags As Long, ByVal idNewItem As Long, _
ByVal lpszNewItem As String) As Long
Private Declare Function CreateMenu Lib "user32" () As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetMenu Lib "user32" ( _
ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _
ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPosA" ( _
ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, ByVal uFlags As Long) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" ( _
ByVal hwnd As Long, ByVal lpString As String) As Long
Const WS_BORDER As Long = &H800000
Const WS_CAPTION As Long = &HC00000
Const WS_CHILD As Long = &H40000000
Const WS_CLIPSIBLINGS As Long = &H4000000
Const WS_DLGFRAME As Long = &H400000
Const WS_MAXIMIZE As Long = &H1000000
Const WS_MAXIMIZEBOX As Long = &H10000
Const WS_MINIMIZEBOX As Long = &H20000
Const WS_OVERLAPPED As Long = 0
Const WS_POPUP As Long = &H80000000
Const WS_SIZEBOX As Long = &H40000
Const WS_SYSMENU As Long = &H80000
Const WS_THICKFRAME As Long = &H40000
Const WS_OVERLAPPEDWINDOW As Long = WS_OVERLAPPED Or _
WS_CAPTION Or _
WS_SYSMENU Or _
WS_THICKFRAME 'Or _
WS_MINIMIZEBOX Or _
WS_MAXIMIZEBOX
Const WS_EX_DLGMODALFRAME As Long = &H1
Const WS_EX_ACCEPTFILES As Long = &H10
Const WS_EX_STATICEDGE As Long = &H20000
Const WS_EX_TOOLWINDOW As Long = &H80
Const WS_EX_TRANSPARENT As Long = &H20
Const WS_EX_WINDOWEDGE As Long = &H100
Const MFT_STRING As Long = 0
Const MFT_MENUBARBREAK As Long = &H20
Const GWL_STYLE As Long = (-16)
Const GWL_EXSTYLE As Long = (-20)
Const SM_CXSCREEN As Long = 0
Const SM_CYSCREEN As Long = 1
Const WM_SETICON As Long = &H80&
Const WM_SYSCOMMAND As Long = &H112&
Const SC_MINIMIZE As Long = &HF020&
Const SC_MAXIMIZE As Long = &HF030&
Const SC_CLOSE As Long = &HF060&
Const SC_SCREENSAVE As Long = &HF140&
Const ICON_SMALL As Long = &H0&
Const ICON_BIG As Long = &H1&
Dim WithEvents myUserForm As MSForms.UserForm
Dim myHandle&, hIcon&, Border&
Dim FormCaption$
Dim MaxBox As Boolean, MinBox As Boolean
Dim UFIconImage As Object
Public Enum BorderStyles
xlFest = 0
xlÄÄnderbar = 1
End Enum

Public Sub Create(UF As MSForms.UserForm)
Set myUserForm = UF
FormCaption = myUserForm.Caption
myHandle = GetHandle
SetWindowLong myHandle, GWL_STYLE, GetStyle Or WS_OVERLAPPEDWINDOW
SetWindowLong myHandle, GWL_STYLE, GetStyle Or Border
If MaxBox Then SetWindowLong myHandle, GWL_STYLE, GetStyle Or WS_MAXIMIZEBOX
If MinBox Then SetWindowLong myHandle, GWL_STYLE, GetStyle Or WS_MINIMIZEBOX
SetWindowLong myHandle, GWL_EXSTYLE, GetStyle And WS_EX_WINDOWEDGE
' Um ein eigenes Icon in die Symbolleiste einzufügen, muß die Userform ein
' 'Image'-Control enthalten. In der 'Picture'-Eigenschaft von Image1 wird
' nun der Pfad zum Icon angegeben. Dann wird noch die 'Visible'-Eigenschaft
' von Image1 auf 'False' gesetzt ...
On Error GoTo 10
Set UFIconImage = UF.Image1
hIcon = UFIconImage.Picture
If (hIcon) Then SendMessage myHandle, WM_SETICON, ICON_SMALL, hIcon
10:
On Error GoTo 0
' Wer will, kann auch noch ein Menü erstellen, das aber (noch) nicht
' funktioniert ... (einfach auskommentieren)
'hMenu = CreateMenu
'AppendMenu hMenu, MFT_STRING, 120, "&Datei"
'AppendMenu hMenu, MFT_STRING, 130, "&Bearbeiten"
'AppendMenu hMenu, MFT_STRING, 140, "&?"
'SetMenu myHandle, hMenu
End Sub



Private Function GetHandle() As Long
Select Case Int(Val(Application.Version))
Case 8 'Excel 97
GetHandle = FindWindow("ThunderXFrame", vbNullString)
Case 9, 10, 11 'Excel 2000, XP, 2003
GetHandle = FindWindow("ThunderDFrame", vbNullString)
End Select
End Function


Public Property Get hwnd() As Boolean
hwnd = myHandle
End Property
Public Property Get Caption() As String
Caption = FormCaption
End Property
Public Property Let Caption(Title As String)
SetWindowText myHandle, Title
FormCaption = Title
End Property
Public Property Get MaxButton() As Boolean
MaxButton = MaxBox
End Property
Public Property Let MaxButton(Status As Boolean)
MaxBox = Status
End Property
Public Property Get MinButton() As Boolean
MinButton = MinBox
End Property
Public Property Let MinButton(Status As Boolean)
MinBox = Status
End Property
Public Property Let BorderStyle(Style As BorderStyles)
Select Case Style
Case 0: Border = 0
Case 1: Border = WS_SIZEBOX
End Select
End Property


Public Sub CloseForm()
Unload myUserForm
End Sub



Public Sub Maximize()
SendMessage myHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0&
End Sub



Public Sub Minimize()
SendMessage myHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0&
End Sub



Public Sub Screensaver()
SendMessage myHandle, WM_SYSCOMMAND, SC_SCREENSAVE, 0&
End Sub



Private Function GetStyle() As Long
GetStyle = GetWindowLong(myHandle, GWL_STYLE)
End Function



Private Sub Class_Initialize()
MaxBox = False
MinBox = False
End Sub


Anzeige
danke oT.
13.01.2009 19:25:00
Tino
AW: Eventuell noch eine Hilfe ?
13.01.2009 19:36:00
Heinz
Hallo Tino
Das einzige was ich Bitte jetzt noch bräuchte, wäre:
Die ComboBox1 von UF "Eingabe" aktualisiert mir alle Daten.
Jetzt möchte ich das mir der Wert von TextBox1 in Sheets "Prüfungen" A1
Der Wert von TextBox9 in Sheets "Prüfungen" F1 eingetragen wird.
Könntest Du das eventuell Bitte noch bewerkstelligen.
Dann wäre die Arbeitsmappe fertig.
AW: Eventuell noch eine Hilfe ?
13.01.2009 19:52:00
Tino
Hallo,
müsste so gehen.
Sheets("Prüfungen").Range("A1") = Eingabe.TextBox1
Sheets("Prüfungen").Range("F1") = Eingabe.TextBox9
Eingabe... ist die entsprechende Userform
Gruß Tino
AW: Eventuell noch eine Hilfe ?
13.01.2009 19:56:32
Heinz
Hallo Tino
PERFEKT !!!!
Recht herzlichen Dank & Gute Nacht.
Danke - Heinz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige