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

Top, Left usw. einer Uf nicht setzbar

Top, Left usw. einer Uf nicht setzbar
Reinhard
Hallo Wissende,
ich habe eine UF mit Namen "Dateiliste". Im Code der Uf steht:
Private Sub UserForm_Activate()
Call Initialisierung(Dateiliste)
End Sub
In einem Standardmodul steht folgender Code.
Es geht, damit ergibt sich alles andere, nur um diese zwei Zeilen:

Dateiliste.Top = 0   ' Funtioniert
.Top = 0                  'Fehler 438

Referenziere ich also direkt auf den UF-Namen klappt es, übergebe ich den UF-Namen via Byref an die Prozedur und beziehe mich mit "With" und Punkt darauf, klappt es nicht. Warum, bzw. was muß ich tun, hab ich übersehen?
Die Steuerelemente auf der UF werden im Modul erkannt, warum nicht .Top?
Danke ^ Gruß
Reinhard

Option Explicit
Sub Initialisierung(ByRef UF As UserForm)
Dim Zei As Long, Quelle As String
With ThisWorkbook.Worksheets(Application.UserName & "_Dateiliste")
Zei = .Cells(.Rows.Count, 1).End(xlUp).Row
If Zei = 1 Then Exit Sub
.Range("A:E").Copy Destination:=.Range("H1")
Call Kuerzen(4)
Quelle = "'[" & .Parent.Name & "]" & Application.UserName & "_Dateiliste'!H2:L" & Zei
End With
With UF
.lbListe.RowSource = Quelle
Dateiliste.Top = 0
'  .Top = 0
'  .Left = 0
'  .Width = Application.Width
'  .Height = Application.Height
'  .lbListe.Width = .Width
'  .lbListe.Height = .Height - 50
'  .cbAbbrechen.Top = .Height - 47
'  .cbOeffnen.Top = .Height - 47
'  .cbHilfe.Left = Application.Width - 120
'  .cbSortiereName.Left = 19
'  .cbSortiereDatum.Left = 114
'  .cbSortierungAufheben.Left = 350
'  .cbSortierePfad.Left = 166
'  .cbSortiereBemerkung.Left = 566
'  .Label2.Top = .Height - 46
.cbSortiereName.Caption = "A - Z"
.cbSortiereDatum.Caption = "A - Z"
.cbSortierungAufheben.Caption = "A - Z"
.cbSortierePfad.Caption = "A - Z"
.cbSortiereBemerkung.Caption = "lfd. Nr. 1 _ X"
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Top, Left usw. einer Uf nicht setzbar
19.03.2011 21:15:25
Nepumuk
Hallo Reinhard,
du musst den Parameter als Objekt deklarieren. Als Userform erzeugst du eine neue Instanz eines leeren Userforms welches dein Userform enthält. Das kannst du sehen, wenn du in der Prozedur die Caption des Forms änderst. Die geänderte Caption erscheint unterhalb der Titelleiste.
Da ein Userform, wie eine Tabelle oder die Mappe selbst, eine öffentliche Klasse ist, macht es eigentlich keinen Sinn diese als Parameter zu übergeben. Und wenn schon, dann so:
Call Initialisierung(Me)
Gruß
Nepumuk
AW: Top, Left usw. einer Uf nicht setzbar
19.03.2011 21:22:27
Gerd
Hallo Reinhard,
bin heute zu langsam. :-)
Private Sub UserForm_Activate()
Call Initialisierung(Me)
End Sub
Sub Initialisierung(UF As Object)
MsgBox UF.Height
Set UF = Nothing
End Sub Gruß Gerd
Anzeige
@Nepu und Gerd, klappt natürlich mit Me, danke owT
22.03.2011 01:05:46
Reinhard


Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige