programm einem makro zuweisen

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von 1989moni1989.

    programm einem makro zuweisen

    Hallo!!!

    über Extras/Makros/VisualBasic-Editor hab ich jetzt ein programm erstellt und das funktioniert soweit einwandfrei...

    allerdings würde ich es jetzt gerne übe eine schaltfläche aufrufen direkt aus excel und ich habe keine ahnung, wie man das macht... denn dieses programm wurde keinem makro zugewiesen....

    habt ihr einen rat???

    lg Moni
    Hallo Moni,

    füge eine Befehlsschaltfläche in Dein Worksheet. Aktiviere den Entwurfmodus. Doppelklicke auf die Schaltfläche.

    >Private Sub CommandButton1_Click()
    >Call Modul1.Makro1
    >End Sub

    1-ste und 3-te Zeile sollten vorhanden sein.
    2-te Zeile eingeben. Wenn Du das Makro aufgezeichnet hast, dann sollte Modul1 passen. Nach dem Punkt der Name Deines Makros (in dem Beispiel wurde kein Namen vergeben->System vergibt Makro1).

    Hoffe ich schreibe nicht zu kompliziert, ist mein 1-ster Beitrag.

    lg
    FreeRider74

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FreeRider74“ ()

    hey ;)
    danke für deine antwort!!!

    aber ich hab ein kleines problem...
    also mein programm ist gar kein makro...
    es erscheint nicht in der makro-liste, sondern nur wenn ich das arbeitsblatt öffne und dann auf extras, makros, VisualBasic-Editor klicke...

    wenn ich das programm dort drinnen ausführe über den grünen pfeil, dann klappt alles perfekt, aber ich kann ihm keinen makro namen geben... zumindest weiß ich nicht, wie man das macht...

    glg moni
    Hi,

    @1989moni1989

    ändere die Zeile:

    Private Sub ... in Sub ...

    Dann wird es auch als Makro "erkannt" und Du kannst es direkt der Schaltfläche zuweisen (reMaustaste - Makro zuweisen)


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    also ich glaube ich poste jetzt mal den quellcode *gg*
    denn es erscheint noch immer nix als makro...

    soeinfach mit aufzeichnen und dann rauslöschen gehts auch nicht, weil ich ein formular dazu nehme...


    Visual Basic-Quellcode

    1. Function Alter(sDatum As String) As Long
    2. Dim dtDate As Date
    3. sDatum = Trim$(sDatum)
    4. If Len(sDatum) = 10 Then
    5. dtDate = CDate(sDatum)
    6. Alter = Year(Date) - Year(dtDate)
    7. End If
    8. End Function
    9. Sub cmdOK_Click()
    10. If txtVorname = "" Or txtNachname = "" Or txtStrasse = "" Or txtPlz = "" Or txtGeburtstag = "" Or txtOrt = "" Then
    11. MsgBox "Du hast nicht alles angegeben!"
    12. Else
    13. MsgBox "Du bist/wirst " & Alter(txtGeburtstag.Value) & " Jahre alt!" & vbCrLf & "Danke für deine Eingabe!"
    14. End
    15. End If
    16. End Sub
    17. Sub txtGeburtstag_AfterUpdate()
    18. Dim sDate As String
    19. 'Eingabe trimmen
    20. sDate = Trim(txtGeburtstag.Value)
    21. 'Länge prüfen
    22. If Len(sDate) > 0 Then
    23. 'Läne <> 10 prüfen
    24. If Len(sDate) <> 10 Then
    25. 'Hinweis anzeigen
    26. MsgBox "Ungültige Datumseingabe. Bitte das Format TT.MM.JJJJ verwenden!"
    27. 'Eingabefeld leeren
    28. txtGeburtstag.Value = ""
    29. Else
    30. 'Gültigkeit des Datums überprüfen
    31. If Not IsDate(sDate) Then
    32. 'Hinweis Anzeigen
    33. MsgBox "Ungültige Datumseingabe. Bitte das Format TT.MM.JJJJ verwenden!"
    34. 'Eingabefeld leeren
    35. txtGeburtstag.Value = ""
    36. End If
    37. End If
    38. End If
    39. End Sub
    40. Sub txtNachname_AfterUpdate()
    41. txtNachname.Value = Trim$(txtNachname.Value)
    42. End Sub
    43. Sub txtOrt_AfterUpdate()
    44. txtOrt.Value = Trim$(txtOrt)
    45. End Sub
    46. Private Sub txtPlz_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    47. Select Case KeyAscii
    48. Case 48 To 57
    49. Case Else
    50. KeyAscii = 0
    51. End Select
    52. End Sub
    53. Sub txtStrasse_AfterUpdate()
    54. txtStrasse.Value = Trim$(txtStrasse.Value)
    55. End Sub
    56. Sub txtVorname_AfterUpdate()
    57. txtVorname.Value = Trim$(txtVorname.Value)
    58. End Sub
    Hi,

    OK, bei nem Formular siehts schon wieder anders aus.

    1.) Erstelle einen CommandButton direkt auf Deinem Excel Sheet (Steuerelemente Toolbox über Ansicht einblenden)
    2.) rechts Klick auf den Button --> Code anzeigen
    3.) im Codefenster wird autom. eine Sub erzeugt, dort hinein UserForm1.Show (falls Du die Form umbenannt hast, den entspr. Namen anstatt UserForm1 verwenden!)

    so müsste es jetzt hinhauen.


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de