Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

2 userforms untereinander. das erste oben links

Betrifft: 2 userforms untereinander. das erste oben links von: Rene
Geschrieben am: 27.07.2014 11:41:37

Moin Moin,

ich habe gerade ein problem mit 2 userforms in denen ein lauftext läuft.
das erste userform soll am oberen bildschirmrand links oben in der ecke sein
und das zweite direkt darunter unter dem ersten.

irgendwie klappt das aber leider nicht.

habt ihr vielleicht eine idee?
danke

  

Betrifft: AW: 2 userforms untereinander. das erste oben links von: Rene
Geschrieben am: 27.07.2014 11:45:38

vielleicht noch zur information wie die laufbänder ausschauen.
über ein modul sieht der code wie folgt aus

Sub LaufbandStarten()
Sheets("Start").Range("N30").Value = "läuft"
   
    Laufband2.Show 0
    Laufband1.Show 0
    call Laufband
End Sub

Sub Laufband()
    Dim anz1 As Long, anz2 As Long
    Dim i As Double, j As Double
    Dim dblLabelBreite1 As Double, dblLabelBreite2 As Double
    Dim t As Single
    
    blnStop = False
    dblLabelBreite1 = WorksheetFunction.Max(Laufband1.Label1.Width, 1000)
    dblLabelBreite2 = WorksheetFunction.Max(Laufband2.Label1.Width, 1000)
    Laufband1.Frame1.Width = WorksheetFunction.Min(dblLabelBreite1 + 2, 960)
    Laufband2.Frame1.Width = WorksheetFunction.Min(dblLabelBreite2 + 2, 960)
    Laufband1.Width = Laufband1.Frame1.Width + 2
    Laufband2.Width = Laufband2.Frame1.Width + 2
    Laufband2.Top = Laufband1.Top + Laufband1.Height + 9
    'UserForm2.Left = UserForm1.Left + UserForm1.Width + 10
    
'    ActiveCell.Select
    
    Do Until anz2 >= 15000 And anz1 >= 15000   'Anzahl Durchläufe
        If i <= 0 Then
            Laufband1.Label1.Left = Laufband1.Frame1.Width
            i = Laufband1.Frame1.Width + dblLabelBreite1
            anz1 = anz1 + 1
        End If
        If j <= 0 Then
            Laufband2.Label1.Left = Laufband2.Frame1.Width
            j = Laufband2.Frame1.Width + dblLabelBreite2
            anz2 = anz2 + 1
        End If
        If blnStop Then Exit Do
        t = Timer
        Do Until Timer > t + 0.01
            DoEvents
        Loop
        Laufband1.Label1.Left = i - dblLabelBreite1
        Laufband2.Label1.Left = j - dblLabelBreite2
        i = i - 0.75
        j = j - 0.9
    Loop
    Unload Laufband1
    Unload Laufband2
End Sub
lediglich die ausrichtung oben links für das erste
sowie direkt darunter für das zweite funktioniert nicht....


  

Betrifft: AW: 2 userforms untereinander. das erste oben links von: Hajo_Zi
Geschrieben am: 27.07.2014 13:15:12

Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei wäre nicht schlecht.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Der Dateiname sollte was mit dem Problem zu tun haben.
Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test..., Mappe…, Beispiel… wird eine vorhandene überschrieben.
Ein Bild in Excel geöffnet sieht anders aus als das Bild.
Ich habe kein Tool um ein Bild in Excel zu importieren.

GrußformelHomepage


  

Betrifft: AW: 2 userforms untereinander. das erste oben links von: Nepumuk
Geschrieben am: 27.07.2014 14:56:32

Hallo Hajo,

warum schreibst du eine Antwort in der faktisch steht, dass du gar nicht antworten willst?

Denn in einer Excelmappe zwei Userforms anzulegen ist ja wohl nicht zu viel verlangt. Das sind genau 4 Klicks. Und schreib jetzt nicht, dass deine Userform anders aussehen wie die von Rene. Ein Userform ist immer ein Rechteck egal auf welchem Rechner. Und um die untereinander zu positionieren ist es scheißegal wie groß oder klein sie sind. Denn die Position der Unteren ist abhängig von der Höhe der Oberen. Die muss ich überhaupt nicht wissen, denn das kann ein Programm selber lesen.


Hallo Rene,

eigentlich kannst du das auch ohne VBA machen, außer die Höhe der Oberen ändert sich ständig. In den Eigenschaften des 1. Userforms Left = 0 / Top = 0 / StartUpPosition = 0 (manuell) / ShowModal = False. In den Eigenschaften des 2. Userforms machst du die selben Einstellungen nur bei der Top-Eigenschaft gibst du den Wert der Height-Eigenschaft des 1. Userforms ein. Fertig, und die Userforms kannst du dann ohne Parameter aufrufen Userform1.Show

Wenn du die Top-Position unbedingt per VBA setzen willst, dann so:

Public Sub Start()
    UserForm1.Show
    With UserForm2
        .Top = UserForm1.Height
        .Show
    End With
End Sub

Gruß
Nepumuk


  

Betrifft: AW: 2 userforms untereinander. das erste oben links von: Rene
Geschrieben am: 27.07.2014 15:22:09

Hallo Nepumuk,

danke für die Hilfe.
Klappt super.


 

Beiträge aus den Excel-Beispielen zum Thema "2 userforms untereinander. das erste oben links"