Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten Top
#3
(30.08.2018, 08: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.
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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