Herbers Excel-Forum - das Archiv

Userform

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
    Bild

    Betrifft: Userform
    von: Peter
    Geschrieben am: 31.10.2003 00:09:22
    Hallo an alle,

    ich habe mir durch „wälzen“ in Büchern und nachfragen in Foren, folgendes Makro zusammengeschustert.
    Über eine Userform füge ich Zeilen in eine „Liste“ ein, wenn neue Zeilen gebraucht werden - und klappt auch (wunderte mich da ich noch nicht oft mit Userformen gearbeitet habe).
    Ich möchte mir die Arbeit jetzt noch einfacher machen und die Userform erweitern.
    Das Problem zu erklären, wird wohl nicht so ganz einfach sein ... ich versuche es mal so

    Die Userform soll erweitert werden mit „Textfeldern“ erweitert werden, wo folgende Angaben gemacht werden (ich vermute mal das es mit Textfeldern gemacht wird ...)

    In einen Textfeld soll eine Zugnr. (5 Zahlen) stehen
    Und in den beiden anderen Textfeldern soll ein Datum stehen (Format 31.10)

    Es wäre jetzt gut, wenn in Spalte B (Zugnr.) – in allen eingefügten Zeilen der Wert aus der Userform übernommen wird
    in Spalte „C“ das erste Datum
    in Spalte „F“ das zweite Datum
    genauso übernehmen.

    
    
    Private Sub CommandButton1_Click()
    ActiveSheet.Unprotect Password:="test"
    ActiveSheet.EnableAutoFilter = True
    ActiveWindow.LargeScroll Down:=-20
    Range("A5").Select
    Dim Zeile As Long, Spalte As Integer
    Dim InsertRows As Long, i As Long
    Zeile = 7
    Do
    InsertRows = Application.InputBox("Wieviele Wagen hat der Zug ?", Type:=1)
    If InsertRows > 50 Then MsgBox "wie Lang und wie Schwer soll der Zug denn sein ..."
    Loop Until InsertRows <= 50
    For i = 1 To InsertRows
    Rows(6).EntireRow.Hidden = False
    Range("A6").Offset(i, 0).EntireRow.Insert Shift:=xlDown
    Rows(6).EntireRow.Copy Range("A6").Offset(i, 0).EntireRow
    For Spalte = 1 To 10
    If Not Cells(Zeile - 1 + i, Spalte).HasFormula Then Cells(Zeile - 1 + i, Spalte) = ""
    Next Spalte
    Next i
    Rows(6).EntireRow.Hidden = True
    ' Warum das ??? ActiveWindow.DisplayHeadings = True
    ActiveSheet.Protect Password:="test", Contents:=True, userInterfaceOnly:=True
    Unload Me
    Range("A7").Select
    End Sub
    
    


    Ich hoffe ich habe es nicht zu umständlich erklärt ?!?

    Gruß Peter
    Bild

    Betrifft: AW: Userform
    von: Galenzo
    Geschrieben am: 04.11.2003 09:55:52
    Hallo,
    da hast du aber nicht mit Userforms gearbeitet, sondern nur mit 'ner simplen "Inputbox".
    Das mag ja gehn, solange du nur EINEN oder zwei Werte eingeben willst. Aber sobald es - wie bei dir jetzt - noch mehr Werte werden, nervt das ewige "OK"-Geklicke dann doch, zumal du auch nachträglich keine Werte mehr ändern kannst.
    Schau dir dann mal an, wie man eine Userform bastelt und diese aufruft/anzeigen läßt.
    kurzer Tip: Im VBA-Fenster -"Einfügen/Userform". Dort kannst du dann mehrere "Inputboxen", dann "Textfelder" genannt, in dem Fenster plazieren, je nach dem, was du damit eingeben willst. Die in diese Textboxen eingegebenen Werte kannst du dann weiterverarbeiten, z.B. mit Textbox1.value - das ist dann der Wert aus der 1. Textbox

    Ich habe dir erstmal noch eine Prozedur gebastelt, die noch mit Inputboxen arbeitet:


    Private Sub CommandButton1_Click()
    Dim Anzahl, ZugNr, Datum1, Datum2
    Dim As Integer

        Anzahl = InputBox("Anzahl Wagen:", , 10)
        If Anzahl = "" Then Exit Sub
           
        ZugNr = InputBox("Zugnummer:", , 1)
        Datum1 = InputBox("Datum1:")
        Datum2 = InputBox("Datum2:")
        
        Rows("1:" & Anzahl).Insert
        
        For i = 1 To Anzahl
            Cells(i, 2).Value = ZugNr
            Cells(i, 3).Value = Datum1
            Cells(i, 6).Value = Datum2
        Next i
        
    End Sub


    Mit 'ner Userform wäre es dann ähnlich:


    Private Sub CommandButton1_Click()
    Dim Anzahl, i As Integer
        Anzahl = Textbox1.Value
        Rows("1:" & Anzahl).Insert
        For i = 1 To Anzahl
            Cells(i, 2).Value = Textbox2.Value
            Cells(i, 3).Value = Textbox3.Value
            Cells(i, 6).Value = Textbox4.Value
        Next i
    End Sub


    Viel Erfolg!
     Bild
    Excel-Beispiele zum Thema " Userform"
    Diagramm in Userform XL-Dateien in UserForm listen
    UserForm an Excel-Fenster anpassen Fundstellen in UserForm listen
    Module und UserForms austauschen In einer Schleife auf Elemente einer UserForm zugreifen
    Werte in eine ComboBox einer UserForm übernehmen Zellinhalt als Label-Aufschrift in UserForm
    Alle CheckBoxes einer UserForm ansprechen Wenn kein Eintrag, UserForm nicht schließen