Userforms

 

Home
Nach oben

Last Update 20.07.2004

Copyright  2003
Ramses (C)

  1. Userform mit eigenem Menü
  2. Userform mit Min und Max Button

  3. Userform für Dateiliste oder Ordnerinhalt

  4. Beliebige Anzahl Textboxes zur Laufzeit erstellen

  5. Combobox Listfill-Range automatisch anpassen

  6.  


 

Userform mit eigenem Menü.

Manchmal wünscht man sich eine eigene Applikation zu schreiben und diese komfortabel aus einer Userform zu bedienen. Mit verschiedenen Menüs um dem User alle Möglichkeiten innerhalb der Userform zu bieten.

Das geht nicht sagen Sie ?

Was halten Sie davon:

Das "Menü" wird mit Hilfe von präparierten Comboboxen realisiert. Die Menübefehle werden direkt übernommen und das entsprechende Makro ausgelöst. Die Makros haben zur besseren Unterscheidung die gleichen Namen wie die Befehle im Menü. Die Auswahl des Makros erfolgt über das "ComboBox_Change()" Ereignis und anschliessend wird mit der "Replace"-Funktion das Leerzeichen durch ein Underline ersetzt, damit die Makros richtig benannt werden können ( z.B. "Neue Arbeitsmappe" wird in "Neue_Arbtitsmappe" umbenannt ).

Zurück


 

Userform mit Min-Max Button

Wenn eine Userform im nicht modalen Modus läuft, wäre es elegant sie einfach verkleinern zu können,... aber MS hat dies nicht vorgesehen.

Thomas Risi hat jedoch eine eigene Klasse entwickelt um das Problem zu lösen.

Damit lässt sich die Userform auf Bildschirmgrösse skalieren oder auch verkleinern und in der Taskleiste paltzieren.

Zurück


 

Userform für Dateiliste

Lesen Sie in eine Userform den Inhalt eines definierten Ordners ein um die Datei in eine Variable zu nehmen und später weiterzuverarbeiten

 

Sub Fill_Listbox_with_Filenames()
Dim i As Long, totFiles As Long
Dim gefFile As String, dname As String
Dim Suchpfad As String, suchbegriff As String, DateiForm As String
Dim oldStatus As Variant
Suchpfad = InputBox("Geben Sie den Ordner an, der durchsucht werden soll.", "Pfad definieren", Application.DefaultFilePath)
If Suchpfad = "" Then Exit Sub
DateiForm = InputBox("Geben Sie den Dateityp an der gesucht werden soll", "Dateierweiterung", "*.xls")
If DateiForm = "" Then Exit Sub
Application.ScreenUpdating = True
oldStatus = Application.StatusBar
With Application.FileSearch
    .LookIn = Suchpfad
    .SearchSubFolders = True
    .Filename = DateiForm
    If .Execute() > 0 Then
        totFiles = .FoundFiles.Count
        Application.StatusBar = "Total " & totFiles & " gefunden"
        For i = 1 To .FoundFiles.Count
            gefFile = .FoundFiles(i)
            'In Listbox eintragen
            Me.ListBox1.AddItem (gefFile)
        Next i
    End If
End With
Application.StatusBar = oldStatus
Application.ScreenUpdating = True
End Sub 

 

Zurück


 

 


 

Textboxes zur Laufzeit/Initialisierung erstellen

 

 

Beim Aufruf der Userform werden Sie gefragt wie viele Zeilen und Spalten Sie mit Textboxen erstellen wollen

Zurück


Automatische Anpassung einer ListFill-Range in einer Combobox

Es ist immer das gleiche Problem ;-),..in einer Liste kommen Einträge hinzu oder werden gelöscht.

Das Ergebnis:
In der Combobox sind entweder immer Leerzellen am Ende, oder die hinzugefügten Daten sind nicht mehr drin.

Abhilfe schafft diese Eintragung

In der Tabelle *Einfügen - Namen - Definieren"

Namen erstellen: "MyRange"
Bezieht sich auf: =INDIREKT("Tabelle1!A1:A" & Anzahl2(Tabelle1!A:A))

Bei Initialisierung der Userform die ListFillRange auf "MyRange" neu zuweisen, oder bei Einträgen die aus der UF heraus in diesem Bereich gemacht werden

Das klappt auch mit der Combobox in der Tabelle und der Eigenschaft

Private Sub Combobox1_GotFocus()
Me.Combobox1.ListfillRange = "MyRange"
End Sub

Damit entsteht ein ListRange ohne "überhängende" Leerzeilen

 

Zurück


 

 

Zurück