Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
328to332
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
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform

Userform
31.10.2003 00:09:22
Peter
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform
04.11.2003 09:55:52
Galenzo
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!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige