Makro mit Makro in einen Button?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 05.08.2015 17:49:16

Hallo,
ich tüftel schon eine ganze Weile, aber ich kriege es nicht hin. Kann mir jemand helfen?
Ich habe zwei Arbeitsmappen "10100" und "Work". Aus der "Work" heraus starte ich ein Makro welches "10100" (dort "Tabelle1") öffnet, ein wenig bearbeitet und fertig. Jetzt soll aber zusätzlich noch ein einfacher Button in die 10100 ("Tabelle1") der gleichzeitig mit einem Makro behaftet ist (also nach der Bearbeitung Button drückemn und):
- lösch den Button aus der 10100 wieder raus
- speicher die Datei so wie sie ist und wo sie war
Das klingt doch eigentlich einfach? Aber no way for me.
Danke für Hilfe! Gruß Marcus

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Werner
Geschrieben am: 05.08.2015 18:54:44
Hallo Marcus,
ich bin jetzt zwar nicht der Experte, vielleicht verstehe ich ja deshalb nicht was du willst. Was soll denn der Code hinter dem Button bewirken, den du erst ins Blatt einfügst um ihn dann wieder zu löschen?
Gruß Werner

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 05.08.2015 18:58:59
Das wird bei der täglichen Arbeit ca. 50 mal genutzt in verschiedenen Arbeitsblättern. Und die Leute kriegen es immer wieder hin die Originaldateien zu vermatschen (also nicht zu speichern oder was weiß ich :-) )..... Deshalb Button rein, da müssen die nur drauf klicken und der Rest wird dann erledigt...

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Werner
Geschrieben am: 05.08.2015 19:35:24
Hallo Marcus,
ich steig da immer noch nicht durch. Offensichtlich geht es wohl nur darum, dass die Datei, welche du mit VBA öffnest und in Blatt 1 "ein wenig bearbeitest" danach gespeichert wird. Dann stellt sich mir die Frage, warum du in deinem Code für das Öffnen - Bearbeiten der Datei am Ende des Codes nicht gleich speichern lässt? Sprich der Code öffnet die Datei, bearbeitet Blatt 1 und speichert die Datei dann gleich wieder.
Bei Antwort bitte daran denken, den Beitrag als offen zu markieren, Kontrollkästchen oben rechts neben dem Passwort.
Wermer

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 05.08.2015 19:39:12
Moin Werner,
es geht darum: es wird mittels Makro eine Datei geöffnet, formatiert zum Bearbeiten durch Personal und soll danach einfach gespeichert werden so wie sie heißt und da wo sie liegt. Korrekt. Aber glaub es mir, die Leute kriegen es hin
- die Datei nicht zu speichern
- unter anderem Namen (Kopie von...)
Und damit funktionieren die weiteren Makros natürlich nicht. Deshalb für doofe :-): Ein Button wird eingefügt mit dem Code "lösch den Button wieder, speicher die Datei und schließe diese". Scheint aber wohl nicht so einfach zu sein...

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Daniel
Geschrieben am: 05.08.2015 19:50:05
Hi
code und Buttons in andere Dateien hineinzupflanzen ist nicht ganz trivial
du könntest die Datei per Code aber schützen.
hierzu kommt folgender Code ins Modul "DieseArbeitsmappe" der Datei:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Me.ReadOnly Then
    MsgBox "Datei kann nicht gespeichert werden"
    Me.Saved = True
Else
    If SaveAsUI Then
        MsgBox "Sie dürfen keine Kopien dieser Datei anlegen"
        Cancel = True
    End If
End If
End Sub

Damit wird ein SpeichenUnter unterbunden.
Die Makros müssen aber aktiv sein.
Gruß Daniel

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 05.08.2015 20:08:32
Hi Daniel,
danke für Deine Antwort. Aber der Code müsste ja auch jedes Mal in die "neue Datei" geschrieben werden. Das hilft mir ja nix. Den Button einfügen kriege ich via Makro aus der Stammdatei ja hin, aber ich kriege "das Makro" dann nicht hinter den Button getackert. U know?
Grüße aus dem warmen Hannover

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Daniel
Geschrieben am: 05.08.2015 20:34:52
Hi
kommt darauf an, wie du die Datei neu erstellst.
ggf kannst du hier ja eine Vorlage verwenden, die du kopierst und die den Code bereits enthält.
ansonsten gibt hier ein Tutorial, wie du Code mit Code erstellen kannst:
http://www.office-loesung.de/ftopic192212_15_0_asc.php
Gruß Daniel

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Mullit
Geschrieben am: 05.08.2015 22:03:22
Hallo Marcus,
könnte man machen, Du rufst das Makro nicht aus der Datei auf, in der sich der Button befindet, sondern aus der Stammdatei:
Code in die Stammdatei:

Option Explicit
Public Sub test1()
  With ActiveWorkbook
      .ActiveSheet.Buttons(Application.Caller).Delete
      .Save
  End With
  MsgBox "MyMacro"
End Sub
Public Sub prcOpen()
With Workbooks.Open(Filename:=ThisWorkbook.Path & "\test2Button.xlsm").Worksheets(1).Buttons. _
Add( _
   Left:=100#, Top:=100#, Width:=100#, Height:=100#)
   .Caption = "MyButton"
   .OnAction = ThisWorkbook.Name & "!test1"
End With
End Sub

Allerdings versteh ich noch nicht, warum Du den Button nicht konstant eingefügt haben willst..
Gruß, Mullit

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 06.08.2015 10:40:00
Moin Mullit,
danke - er fügt den Button jetzt ein, es kommt aber ein Laufzeitfehler 1004 "Die OnAction-Eigenschaft des Button-Objektes kann nicht festgelegt werden.". Was ist da noch zu tun?
Konstant deshalb nicht - weil die Dateien 50 mal am Tag wechseln :-). Es kommen also immer wieder Neue...
Danke bis hierhin!

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Mullit
Geschrieben am: 06.08.2015 18:20:19
Hallo Marcus,
ah ok, hmm in Xl2007 und Xl2010 läuft bei mir das Einfügen des Buttons und Zuweisen der OnAction-Eigenschaft ohne Fehler ab und das Makro 'test1' kann über den Button ausgeführt werden, aber zeig am besten mal Deinen Code...
Nebenbei: Daniels Hinweis bleibt entscheidend für den Fall, daß Du die Stammdatei vorzeitig schließt...
Gruß, Mullit

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 06.08.2015 19:20:53
Hi,
also die aktuelle Position sieht da so aus:
Columns("O:O").ColumnWidth = 33.11
Columns("D:D").ColumnWidth = 13.11
Columns("G:G").ColumnWidth = 13.11
Columns("F:F").ColumnWidth = 13.11
Range("O4").Select
Workbooks("99112 bearbeitet von CLS.xls").Close savechanges:=True
'Button rein
With Workbooks.Open(Filename:=ThisWorkbook.Path & "\99112 bearbeitet von CLS.xls").Worksheets(1).Buttons. _
Add( _
Left:=100#, Top:=100#, Width:=100#, Height:=100#)
.Caption = "MyButton"
.OnAction = ThisWorkbook.Name & "99112 bearbeitet von CLS Test"

End With

End Sub

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Mullit
Geschrieben am: 06.08.2015 19:36:51
Hallo,
da haben wir schon einige Übeltäter: da fehlt 1. das Ausrufezeichen das Arbeitsmappenamen vom Prozedurnamen trennt und 2. darf Dein Prozedurname keine Leerzeichen enthalten, wahrscheinlich hast Du da den Mappennamen miteingefügt, also wenn dann:

.Caption = "MyButton"
.OnAction = ThisWorkbook.Name & "!99112_bearbeitet_von_CLS_Test"

Oder wenn Dein Makro nur 'Test' heißt, dann:
.Caption = "MyButton"
.OnAction = ThisWorkbook.Name & "!Test"

Gruß, Mullit

Bild

Betrifft: AW: Makro mit Makro in einen Button?
von: Marcus
Geschrieben am: 07.08.2015 15:26:30
Soooooooooooooooo!
DU und nur DU bist der Held für mich diese Woche! GANZ GENAU SO! geht das nämlich. Und nicht anders.
Entschuldigung, aber das musste so aus mir raus grade. Dieses Teil hat mich so irre gemacht!!
DANKE SEHR und ein tolles WE! Gruß Marcus

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro mit Makro in einen Button?"