Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
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
VBA - Makro-Button steuert falsche Datei an
Sven
Guten Morgen!
Auf der Suche nach VBA-Lösungen bin ich schon oft hier auf der Seite gelandet. Diesmal bin ich aber leider nicht fündig geworden - deshalb brauch ich euere Hilfe! :-)
Und zwar schreibe ich ein Makro per Makro von Datei1.xls in Datei2.xls
Ziel = Datei2.xls
With Workbooks(Ziel).VBProject.VBComponents("Tabelle2").CodeModule
.InsertLines x + 1,
...usw...
Das funktioniert auch einwandfrei.
Nun erstellt das Makro der Datei1 auch einen Button in Datei2, damit der User das soeben erstellte Makro in seiner Datei2 einfach nutzen kann.
Und hier beginnt das Problem.
Ich erstellte den Button mit
    With Workbooks(Ziel).Worksheets("TabellenblattX").Shapes
Set Button = .AddTextbox(msoTextOrientationHorizontal, _
1076.25, 0, 35, 15)
End With
Button.Name = "Button1"
Button.OnAction = "Makroname"
...usw...
Ich weiß, es ist nicht der bestausehendste Weg für einen Button, aber es funktioniert gut - eigentlich!
Und zwar verlinkt er nicht einfach das Makro in der Datei2.xls, in der ich das Makro und den Button reinschreibe. Sondern verlinkt die Ursprungsdatei - macht also automatisch 'Datei1.xls'!Makroname.
Ich hab bei Button.OnAction schon versucht, Excel mit Klartext 'Datei2.xls'!Makronameoder Variablen "auszutricksen" - aber das geht irgendwie nicht :-)
Vielleicht ist die Lösung ja total trivial und ich komm nich drauf...
Danke schonmal im Vorraus!!
Grüße
Sven
AW: VBA - Makro-Button steuert falsche Datei an
10.08.2011 12:06:57
Sven
Update
zur Verdeutlichung meiner Fragestellung:
Ich will, dass er mit .onAction = "Makroname" auch das Makro in der Datei ansteuert, in der dieser Button ist/erstellt wurde!
Momentan verknüpft er es leider immer automatisch mit der Datei, von der aus der Button erstellt wurde.
Grüße!
AW: VBA - Makro-Button steuert falsche Datei an
10.08.2011 12:08:58
fcs
Hallo Sven,
du speicherst den Code in der Ziel-Datei in einem Tabellenmodul. Dann darf die Prozedur nicht als Private Sub definiert sein und im String für "OnAction" muss der CodeName des Tabellenblatts & "." & "Makroname" angegeben werden.
Sieht dann etwa wie folgt aus.
Gruß
Franz
Sub aaTestModulCopy()
Dim Ziel As String, x As Long, CodeText As String, Button As Shape
Ziel = "DateiZiel.xls"
CodeText = "Sub MakroName()"
CodeText = CodeText & vbCr & "    MsgBox ""TestMakroCopy"""
CodeText = CodeText & vbCr & "End Sub"
With Workbooks(Ziel).VBProject.VBComponents("Tabelle2").CodeModule
x = .CountOfLines
.InsertLines x + 1, CodeText
End With
With Workbooks(Ziel).Worksheets("TabellenblattX").Shapes
Set Button = .AddTextbox(msoTextOrientationHorizontal, _
1076.25, 0, 35, 15)
End With
Button.Name = "Button1"
Button.OnAction = Workbooks(Ziel).Worksheets("Tabelle2").CodeName & "." & "Makroname"
End Sub

Anzeige
AW: VBA - Makro-Button steuert falsche Datei an
10.08.2011 13:21:07
Sven
Danke für die Mühen, Franz!
Er verlinkt dann aber immer noch automatisch auf die Quelldatei Datei1.xls
'Datei1.xls'!Tabelle2.Makroname FALSCH :-)
statt einfach nur
Tabelle2.Makroname oder 'Datei2.xls'!Tabelle2.Makroname
Ich hab ne ganz verrückte Idee ;-)
Ich schreib den Code zur Button-Erstellung per Makro in die Zieldatei Datei2.xls und ruf diesen dann mit Application.Run Ziel & "!SabinesMakro" auf.
Klingt zwar Abenteuerlich - sollte aber garnicht mal Fehleranfälliger sein... und vielleicht funktioniert's dann so, wie ich es will.
Anzeige
AW: VBA - Makro-Button steuert falsche Datei an
10.08.2011 13:23:29
Sven
selbstverständlich meine ich nicht "SabinesMakro" ...ich hab mir das nur mal eben ausm Netz kopiert, weil ich wissen wollte, wie man externe Makros aufruft :)
AW: VBA - Makro-Button steuert falsche Datei an
10.08.2011 14:10:49
fcs
Hallo Sven,
ich kann deine Probleme nicht nachvollziehen. Ich hab deine Code-Brocken nachgebaut und vervollständigt.
Die Zuweisung des Makros funktioniert funktioniert bei mir unter Excel 2007 einwandfrei.
Auch die Modifikation inklusive Dateiname der Zieldatei klappt.
  Button.OnAction = "'" & Ziel & "'!" & Workbooks(Ziel).Worksheets("Tabelle2").CodeName _
& "." & "Makroname"

Wenn du deine Idee mit "Run" eines Makros in einer externen Datei umsetzt, dann wird diese Externe Datei auch bei jedem Makrostart geöffnet.
Warum erstelltst du nicht einfach eine Excel-Vorlage-Datei in der alles Notwendige an Makros und Schaltflächen vorhanden ist. Denn auf anderen Rechnern/Excelinstallationen wird das Ganze nur Funktionieren, wenn der Zugriff auf das VBA-Projekt unter den Makrosicherheitseinstellungen erlaubt wird. Damit dürfte bei vielen kommerziellen Anwendern gegen Sicherheitsleitlinien verstoßen werden.
Gruß
Franz
Anzeige
AW: VBA - Makro-Button steuert falsche Datei an
10.08.2011 14:50:04
Sven
Ich glaub so ähnlich, wie du es meinst, hab ich es:
Ich hab eine "Extra-Datei", in der das Makro gespeichert ist und in der man Quell- und Ziel-Datei eingibt - und das ganze dann per Button startet. So, dass es jeder User einfach nutzen kann...
Das führt dann einen Abgleich der beiden Dateien durch - muss aber auch in die Ziel-Datei ein Makro samt Button schreiben. Und hier hatte ich ja das Problem mit der Button-Verknüpfung.
Es funktioniert, in dem ich das Button-Erstell-Makro zuerst in die Zieldatei schreibe und dann aus meiner "Extra-Datei" (Anfangsdatei) ausführe!
Der "run"-Befehl für das externe Makro (was in die Ziel-Datei geschrieben wurde) befindet sich innerhalb des "Extra-Datei"-Subs, nicht in der Ziel-Datei. Es soll ja nur einmal zur Button-Erstellung ausgeführt werden.
Hab es auch schon auf anderen Rechnern hier probiert.
(Ich hoffe das war verständlich :-))
Der Lösungsansatz von dir "klingt" zwar auch richtig - aber hier auf Excel2003 scheint es nicht zu funktionieren.
In ein paar Wochen soll alles auf Windows7 und Office2010 umgestellt werden. Da bin ich ja mal gespannt, ob mein Lösungsansatz noch läuft.
Danke dir nochmal!!
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige