VBA - CommandButton Name speichern und übergeben
#1
Hallo Zusammen,

ich habe in meinem Workbook 2 Arbeitsblätter ("Overview" & "Assignment_Data"). 

Auf dem Arbeitsblatt "Overview" habe ich 5 CommandButtons (ActiveX) mit folgenden Namen WKA / WKS / GM / IBN / PM.

Jeder Buttons öffnet die UserForm "Add_Assignment". Die Daten von der UF sollen im Arbeitsblatt "Assignment_Data" gespeichert werden. Die UF hat auch zwei ActiveX Buttons ("Save" & "Cancel")

Nun möchte ich, wenn z.B. der Button WKA geklickt wird, dass die Daten in "Assignment_Data" in den Spalten A:F gespeichert werden. Wird WKS geklickt sollen die Daten in den Spalten H:M gespeichert werden. In der ersten Reihe soll dann immer der Name des Buttons als Headline stehen.

Leider habe ich keine Ahnung wie ich das machen kann. 

Hier mal die Codes für die Buttons:

Code:
Private Sub WKA_Click()
   Add_Assignment.Show
End Sub


Private Sub WKS_Click()
   Add_Assignment.Show
End Sub


Private Sub GM_Click()
   Add_Assignment.Show
End Sub


Private Sub IBN_Click()
   Add_Assignment.Show
End Sub


Private Sub PM_Click()
   Add_Assignment.Show
End Sub

UserForm:
Code:
Private Sub Save_Click()
   Dim ws As Worksheet

   Set ws = Worksheets("UserForm_Data")

   ws.Range("A2").Value = Add_Assignment.Controls("TextBox1")
   ws.Range("A3").Value = Add_Assignment.Controls("TextBox2")
   ws.Range("A4").Value = Add_Assignment.Controls("TextBox3")
   ws.Range("A5").Value = Add_Assignment.Controls("TextBox4")
   ws.Range("A6").Value = Add_Assignment.Controls("TextBox5")

   ' Und so weiter
   
   Add_Assignment.Hide
End Sub

Private Sub Cancel_Click()
   Add_Assignment.Hide
End Sub

Ich hoffe jemand kann mir hier helfen wie ich das machen muss
Top
#2
Ich finde es ehrlich gesagt sehr eigenartig, 5 Buttons zu haben, die alle das Gleiche machen. Wieso nicht ein Button und dann auf der Userform ein Kombinationsfeld, wo man auswählen kann, wo die Daten hingeschrieben werden?
Schöne Grüße
Berni
Top
#3
(30.08.2018, 09:32)MisterBurns schrieb: Ich finde es ehrlich gesagt sehr eigenartig, 5 Buttons zu haben, die alle das Gleiche machen. Wieso nicht ein Button und dann auf der Userform ein Kombinationsfeld, wo man auswählen kann, wo die Daten hingeschrieben werden?

Dies ist leider die Vorgabe die ich habe. Auf dem ersten Arbeitsblatt wird ein Projektplan angezeigt und für jede Abteilung benötige ich eben einen Button mit dem ich die Aufträge hinzufügen kann.
Top
#4
Hallo UnsichtBar,

der Code sieht doch gar nicht so schlecht aus.

Aber da vermutlich niemand das Scenario nachbauen möchte, wird es (vielleicht) nur konkrete Antworten geben anhand einer Beispieldatei.

mfg
Top
#5
Hallo,

schreibe die Spaltenbezeichnungen in die Tag-Eigenschaft der Userform.

Code:
Private Sub WKA_Click()
    add_assignment.Tag = "A:F"
    add_assignment.Show
End Sub


Private Sub WKS_Click()
    add_assignment.Tag = "H:M"
    add_assignment.Show
End Sub
Private Sub Save_Click()
    Dim ws As Worksheet
    
    
    MsgBox "Die Werte werden in den Spalten " & Columns(add_assignment.Tag).Address(0, 0) & " eingetragen"
    Set ws = Worksheets("UserForm_Data")

    ws.Range("A2").Value = add_assignment.Controls("TextBox1")
    ws.Range("A3").Value = add_assignment.Controls("TextBox2")
    ws.Range("A4").Value = add_assignment.Controls("TextBox3")
    ws.Range("A5").Value = add_assignment.Controls("TextBox4")
    ws.Range("A6").Value = add_assignment.Controls("TextBox5")

    ' Und so weiter
    
    add_assignment.Hide
End Sub
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste