Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
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
Excel VBA Code für UserForm umschreiben
18.06.2020 11:57:38
Pascal
Hallo liebe Excel-Anwender,
Ich habe mir ein Makro geschrieben beziehungsweise aus Google zusammen gesucht das genau das macht was ich möchte.
Hier der Code:
  • 
    Private Sub CommandButton1_Click()
    Tabelle1.Range("J4").Value = Date
    Dim sTxt As String
    sTxt = InputBox("Bitte die Kollektion der verschickten Muster angeben.")
    If sTxt = "" Then Exit Sub
    'MsgBox sTx
    Range("B13").Value = sTxt
    Dim sTx As String
    sTx = InputBox("Bitte den Showroom der die Retoure verschickt angeben.")
    If sTx = "" Then Exit Sub
    'MsgBox sTx
    Range("B7").Value = sTx
    Dim sT As String
    sT = InputBox("Bitte den Ansprechpartner der Retoure angeben.")
    If sT = "" Then Exit Sub
    'MsgBox sT
    Range("J10").Value = sT
    Dim s As String
    s = InputBox("Bitte das Brand der Retoure angeben.")
    If s = "" Then Exit Sub
    'MsgBox s
    Range("J7").Value = s
    Dim sa As String
    sa = InputBox("Wie viele Kartons werden insgesamt verschickt?")
    If sa = "" Then Exit Sub
    'MsgBox s
    Range("B10").Value = sa
    Dim Kopien As Variant
    If MsgBox("Werden Textil Kartons verschickt?", vbYesNo, "Drucken") = vbYes Then
    Do
    Tabelle1.Range("J13").Value = "APP"
    Kopien = InputBox("Wie viele Textil Kartons werden verschickt?", "Drucken", 1)
    If StrPtr(Kopien) = 0 Then Exit Sub
    If IsNumeric(Kopien) Then Exit Do
    MsgBox "Bitte eine Zahl eingeben!", vbExclamation, "Hinweis"
    Loop
    ActiveSheet.PrintOut From:=1, To:=1, Copies:=CLng(Kopien)
    End If
    Dim Kopie As Variant
    If MsgBox("Werden Schuh Kartons verschickt?", vbYesNo, "Drucken") = vbYes Then
    Do
    Tabelle1.Range("J13").Value = "FTW"
    Kopie = InputBox("Wie viel Schuh Kartons werden verschickt?", "Drucken", 1)
    If StrPtr(Kopie) = 0 Then Exit Sub
    If IsNumeric(Kopie) Then Exit Do
    MsgBox "Bitte eine Zahl eingeben!", vbExclamation, "Hinweis"
    Loop
    ActiveSheet.PrintOut From:=1, To:=1, Copies:=CLng(Kopie)
    End If
    Dim Kopi As Variant
    If MsgBox("Werden Hardware Kartons verschickt?", vbYesNo, "Drucken") = vbYes Then
    Do
    Tabelle1.Range("J13").Value = "HDW"
    Kopi = InputBox("Wie viel Hardware Kartons verschickt?", "Drucken", 1)
    If StrPtr(Kopi) = 0 Then Exit Sub
    If IsNumeric(Kopi) Then Exit Do
    MsgBox "Bitte eine Zahl eingeben!", vbExclamation, "Hinweis"
    Loop
    ActiveSheet.PrintOut From:=1, To:=1, Copies:=CLng(Kopi)
    End If
    End Sub
    

  • Das Makro ruft InputBoxen auf die auszufüllen sind und leitet die Daten auf ein Tabellenblatt weiter. Danach fragt er dich wie viele Textil Kartons verschickt werden und gibt einen Zusatz auf das Tabellenblatt z.b. APP für Textil und druckt das Tabellenblatt so oft wie Anzahl an Textil Kartons angegeben wurde. Weiter fragt dich dann das Makro ob Schuhe Kartons verschickt wurden, gibt den Zusatz FTW auf das Blatt und druckt so oft das Tabellenblatt wie Schuhe Kartons verschickt werden und zum Schluss fragt er dich nach Hardware (HDW) und auch diese werden so oft gedruckt wie angegeben. Nun wollte ich die lösung mit den Inputboxen verwerfen und mir optisch eine schöne Userform aufbauen. Jedoch weis ich leider nicht genau wie ich mein Makro auf die UserForm umschreibe. Deshalb hoffe ich mir das ich hier Hilfe erhalte und mir vielleicht jemand hierzu etwas unterstützt.
    Hier mein Code für die UserForm:
  • 
    Private Sub CommandButton1_Click()
    With Worksheets("Tabelle1")
    If Me.TextBox4 = "" Then
    .Range("B4") = ("")
    Else
    .Range("B4") = Me.TextBox4.Value
    End If
    If Me.TextBox8 = "" Then
    .Range("J4") = ("")
    Else
    .Range("J4") = Me.TextBox8.Value
    End If
    If Me.ComboBox1 = "" Then
    .Range("B7") = ("")
    Else
    .Range("B7") = Me.ComboBox1.Value
    End If
    If Me.ComboBox3 = "" Then
    .Range("J7") = ("")
    Else
    .Range("J7") = Me.ComboBox3.Value
    End If
    If Me.TextBox1 = "" Then
    .Range("B10") = ("")
    Else
    .Range("B10") = Me.TextBox1.Value
    End If
    If Me.TextBox2 = "" Then
    .Range("J10") = ("")
    Else
    .Range("J10") = Me.TextBox2.Value
    End If
    If Me.TextBox3 = "" Then
    .Range("B13") = ("")
    Else
    .Range("B13") = Me.TextBox3.Value
    End If
    End With
    End Sub
    

    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
    

    Private Sub userform_activate()
    TextBox8.Value = Date
    End Sub
    

    Private Sub UserForm_initialize()
    ComboBox1.AddItem "SR NBG"
    ComboBox1.AddItem "SR Berlin"
    ComboBox1.AddItem "SR Mainhausen"
    ComboBox1.AddItem "SR Heilbronn"
    ComboBox1.AddItem "SR Bonn"
    ComboBox1.AddItem "SR Hannover"
    ComboBox1.AddItem "Outdoor Experten"
    ComboBox1.AddItem "Outdoor Agenturen"
    ComboBox1.AddItem "Running Experten"
    ComboBox1.AddItem "GTM HZO"
    ComboBox1.AddItem "KAM HZO"
    ComboBox1.AddItem "SMM"
    ComboBox1.AddItem "Siemes"
    ComboBox1.AddItem "Teamsport11"
    ComboBox1.AddItem "Zalando"
    ComboBox3.AddItem "Adidas"
    ComboBox3.AddItem "Reebok"
    End Sub
    

  • Hier die Beispiel Datei:
    https://www.herber.de/bbs/user/138403.xlsm
    Wenn vielleicht noch die Karton Anzahl von APP FTW HDW addiert werden und automatisch in Kartonanzahl geschrieben wird wäre Super. Und wenn APP nicht abgehackt ist dann soll es auch keine APP Drucke machen.
    Ich hoffe ihr versteht was ich meine,
    Viele Grüße,
    Pascal Werner

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Excel VBA Code für UserForm umschreiben
    18.06.2020 21:24:42
    ralf_b
    versuch mal den rest selbst fertig zu machen.
    wenn du noch fragen hast ,dann hier im thread stellen
    https://www.herber.de/bbs/user/138416.xlsm
    AW: Excel VBA Code für UserForm umschreiben
    19.06.2020 08:07:53
    Pascal
    Vielen vielen Dank Ralf_b,
    jetzt hätte ich noch eine kurze frage und zwar gibt es ja eine Prüfung auf leere TextBoxen und ComboBoxen wie kann ich den nur bestimmte Textboxen für die Prüfung vorsehen und nicht alle?
    Ich hätte da an so etwas gedacht: If contrl.Name Like "TextBox4", "TextBox8", "TextBox1", "TextBox3", "TextBox2" Or contrl.Name Like "ComboBox*" Then
    Danke & viele Grüße
    Anzeige
    ja das geht auch owT
    19.06.2020 15:05:32
    ralf_b
    ich ging davon aus das du Alle prüfen möchtest, dann ist eine einfache Schleife durch die Controls sinnvoll.
    Du kannst natürlich in der Schleife auch Einzelne ausschließen anstatt Viele einschließen.
    AW: ja das geht auch owT
    22.06.2020 07:05:55
    Pascal
    Hallo Ralf_B,
    wie würde denn der Code im meinen Fall dazu aussehen?
    Danke & viele Grüße,
    Pascal Werner
    AW: ja das geht auch owT
    22.06.2020 18:21:46
    ralf_b
    mit "like" würde ich nicht prüfen wenn ich den genauen Namen kenne.
    in der schleife fragst du z.b.
    if control.name "Textbox2" And control.name "Textboxxy" then
    oder
    if not control.name = "Textbox2" And not control.name = "Textboxxy" then
    oder du nimmst eine select case konstruktion.
    select case typename(control)
    case "TextBox"
    hier der code für textboxen
    case "ComboBox"
    hier der code für comboboxen
    case else
    hier für alle anderen
    end select
    es gibt viele Wege, die nach Rom führen. Ich schreibe dir keinen fertigen Code.
    Anzeige
    AW: ja das geht auch owT
    24.06.2020 12:52:53
    Pascal
    Hallo Ralf_b,
    Vielen vielen Dank ich habe es endlich hinbekommen.
    Mit freundlichen Grüßen und überglücklich,
    Pascal Werner

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige