Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Werte und Objekte an ein Userform übergeben
zurück: Excel plappern lassen weiter: Werte und Objekte von einem Userform zurückbekommen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Nepumuk
VB / VBA Programmierer


Verfasst am:
08. Nov 2008, 18:59
Rufname: Max
Wohnort: Dusseldoof


Werte und Objekte an ein Userform übergeben - Werte und Objekte an ein Userform übergeben

Nach oben
       Version: Office 2k (2000)

Hallo,

weil immer wieder mal gefragt wird, wie einer Userform Werte übergeben werden können, hier mal ein paar Beispiele.

Die erste Empfehlung lautet nämlich meistens: "Benutze eine öffentlich Variable". Ok, das geht natürlich auch, aber eigentlich sollten wir öffentliche Variablen nicht dazu missbrauchen.

Die nun folgenden Beispiele ergeben so natürlich keinen Sinn. Wie du sie praktisch umsetzt kommt immer auf die Anforderung an.


Wenn es sich bei dem zu übergebenden Wert um einen einzelnen handelt, können wir die Tag – Eigenschaft des Userforms nutzen. Beispiel:

In einem Standardmodul:

Code:
Option Explicit

Public Sub Beispiel1()
    With UserForm1
        .Tag = "Hallo"
        .Show
    End With
End Sub

Im Klassenmodul des Userforms:

Code:
Option Explicit

Private Sub UserForm_Activate()
    MsgBox Me.Tag
End Sub




Wenn wir mehrere Werte haben, können wir diese zu einem String zusammensetzen und im Userform wieder splitten. Beispiel:

In einem Standardmodul:

Code:
Option Explicit

Public Sub Beispiel2()
    Dim strText1 As String, strText2 As String, strText3 As String
    strText1 = "Hallo"
    strText2 = "Office-Lösung"
    strText3 = "Forum"
    With UserForm2
        .Tag = strText1 & ";" & strText2 & ";" & strText3
        .Show
    End With
End Sub

Im Klassenmodul des Userforms:

Code:
Option Explicit

Private Sub UserForm_Activate()
    Dim vntArray As Variant
    Dim intIndex As Integer
    vntArray = Split(Me.Tag, ";")
    For intIndex = LBound(vntArray) To UBound(vntArray)
        MsgBox vntArray(intIndex)
    Next
End Sub




Wie übergeben wir ein Array oder gar ein Objekt? Dazu nutzen wir die Tatsache, dass es sich bei einem Userform um eine Klasse handelt und wir in Klassen eigene Eigenschaften definieren können. Die normalerweise notwendige Deklaration und Initialisierung der Klasse benötigen wir nicht, da dieses Objekt schon besteht. Wir benötigen also nur die Eigenschaftsprozeduren im Modul des Userforms. Beispiel:

In einem Standardmodul:

Code:
Option Explicit

Public Sub Beispiel3()
    Dim intArray(1 To 3, 1 To 3)
    Dim intRow As Integer, intColumn As Integer
    For intColumn = 1 To 3
        For intRow = 1 To 3
            intArray(intColumn, intRow) = intColumn * intRow
        Next
    Next
    With UserForm3
        Set .prpSetRange = Tabelle1.Cells(1, 1)
        .prpLetArray = intArray
        .Show
    End With
End Sub

Im Klassenmodul des Userforms:

Code:
Option Explicit

Private mobjRange As Range
Private mvntArray As Variant

Private Sub UserForm_Activate()
    MsgBox mobjRange.Address
    MsgBox mvntArray(UBound(mvntArray, 1), UBound(mvntArray, 2))
End Sub

Private Sub UserForm_Terminate()
    Set mobjRange = Nothing
End Sub

Friend Property Set prpSetRange(objRange As Range)
    Set mobjRange = objRange
End Property

Friend Property Let prpLetArray(vntArray As Variant)
    mvntArray = vntArray
End Property


Wie du siehst, ist das gar nicht so schwierig ohne eine unüberschaubare Anzahl von öffentlichen Variablen auszukommen. Wir müssen nur die schon vorhandenen Möglichkeiten nutzen. Du musst dabei beachten, dass diese Form der Variablenübergabe das Initialize – Ereignis des Userforms auslöst. Dieses sollte aber auch nur in wirklich benötigten Fällen eingesetzt werden. Im Normalfall benutzen wir das Activate – Ereignis.

Wie wir nun Werte und Objekte von einem Userform zurückbekommen siehst du im zweiten Teil.

_________________
De fontibus non est disputandum

Gruß
Nepumuk Cool
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Zufallszahl nicht doppelte werte?? 2 Knicky 1831 06. Jul 2005, 14:39
Gast Zufallszahl nicht doppelte werte??
Keine neuen Beiträge Excel Formeln: Werte zählen in einer Spalte 1 Diepers 14787 30. Jun 2005, 06:14
rainberg Werte zählen in einer Spalte
Keine neuen Beiträge Excel Formeln: Mehrere Werte aus einer Zelle einzeln darstellen 2 Gast 1113 24. Mai 2005, 11:25
Gast Mehrere Werte aus einer Zelle einzeln darstellen
Keine neuen Beiträge Excel Formeln: Alle Werte einer Spalte zusammenzählen 4 Gaaast 1109 13. Apr 2005, 22:14
Scelina Alle Werte einer Spalte zusammenzählen
Keine neuen Beiträge Excel Formeln: Max/Min Werte Excel 2000 Formel/Tipp 5 Unregister 6687 11. März 2005, 19:37
rainberg Max/Min Werte Excel 2000 Formel/Tipp
Keine neuen Beiträge Excel Formeln: Werte aus einer Tabelle nach mehreren Kriterien auswerten 3 Daniel 2901 07. März 2005, 14:15
Hübi Werte aus einer Tabelle nach mehreren Kriterien auswerten
Keine neuen Beiträge Excel Formeln: Doppelte Werte 1 inu 1566 11. Feb 2005, 18:01
fl618 Doppelte Werte
Keine neuen Beiträge Excel Formeln: Zahlen Werte übertragen in eine neue Mappe ? 4 Haschi 2160 03. Feb 2005, 13:45
Haschi Zahlen Werte übertragen in eine neue Mappe ?
Keine neuen Beiträge Excel Formeln: Userform 2 TonisPizza 826 10. Dez 2004, 14:34
TonisPizza Userform
Keine neuen Beiträge Excel Formeln: Will Werte addieren, in Bezug zu zwei anderen Spalten 3 Hardy_K_888 1971 02. Dez 2004, 12:00
ae Will Werte addieren, in Bezug zu zwei anderen Spalten
Keine neuen Beiträge Excel Formeln: Zählen, so dass doppelte Werte nur einmal gezählt werden 2 Volkmann 2258 30. Nov 2004, 17:18
Volkmann Zählen, so dass doppelte Werte nur einmal gezählt werden
Keine neuen Beiträge Excel Formeln: Werte aus Tabelle zurückgebn 1 Spoonler 2266 22. Nov 2004, 15:54
ae Werte aus Tabelle zurückgebn
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum