Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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
Inhaltsverzeichnis

Kopieren von Macros

Kopieren von Macros
07.11.2018 12:03:08
Macros
Hallo zusammen,
ich stehe vor einem kleinen Problem und auch die SuFu hat micht leider nicht wirklich zum Ziel gebracht.
Ich habe eine xlsm Datei, in welcher per Marco eine Sicherheitskopie von einem Teil der Mappe gemacht wird. Es werden die benötigten Arbeitsblätter und die Macros kopiert.
Insoweit funktioniert das Ganze.
Auf der Hauptseite der Originalmappe befindet sich ein Button (Datensatz drucken).
Dieser löst ein vorhandenes Macro (modDSDruck) aus.
In der Kopie ist sowohl der Button als auch das Macro vorhanden.
Nach dem kopieren ist es nun leider so, dass dieses Macro nicht aus der Kopie aufgerufen wird, sondern es wird das Macro der Originaldatei aufgerufen.
Da die Mitarbeiter, welches damit arbeiten sollen die Originaldatei nicht haben, sondern nur mit der Kopie rumlaufen, müsste ich es hinbekommen, dass der Button das Macro aus der Kopie aufruft.
Ich hoffe das ist einigermassen verständlich beschrieben und jemand hat einen Tip für mich.
Viele Grüße
Silvio

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tip 1: Beispielmappe mit Code - owT
07.11.2018 12:05:53
Bernd
AW: Tip 1: Beispielmappe mit Code - owT
07.11.2018 14:41:52
Silvio
mit dem folgenden Code kopiere ich die Macros von der Ursprungs in die ZielMappe
Workbooks.Add
'    ActiveWorkbook.SaveAs Filename:=strKomplettPfad, _
'        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:=strKomplettPfad, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False, _
addtomru:=True
Windows(MyName2).Activate
With ActiveWorkbook.VBProject
For Each vbc In .VBComponents
' Wenn Type = 1 dann ist es ein Standardmodul.
' Wenn Type = 3 dann ist es ein Userform
If vbc.Type = 1 Or vbc.Type = 3 Then
vbc.Export strRelPfad & vbc.Name & ".txt"
Workbooks(strTitelMitMonat).VBProject.VBComponents.Import strRelPfad & vbc.Name  _
& ".txt"
Kill strRelPfad & vbc.Name & ".txt"
End If
Next vbc
End With
Kill strRelPfad & "*.frx"

Anzeige
AW: Kopieren von Macros
07.11.2018 19:52:26
Macros
Hallo Silvio,
zwar bist Du dem Tipp mit der Beispielmappe nicht gefolgt, aber vielleicht hilft Dir dies ja:
Seit dem Umstieg auf Office 365 habe ich auch das Problem, das verlinkte Bilder und Buttons nach Kopie eines gesamten Arbeitsblattes in eine andere Datei, der alte Arbeitsmappenname in den Links stehen bleibt. Was immer sich Microsoft bei diesem Sch... auch gedacht haben mag, bleibt wohl nichts anderes übrig, als das selbst wieder geradezubiegen.
Hier eine Anregung aus einer meiner VBAs, wie alle Objekte einer Datei bereinigt werden könnten.
Versuch es mal, ggf. anpassen:
Sub KHV()
Dim WSh As Worksheet, Obj As Object, T As String, i As Integer
With ThisWorkbook
'Verlinkte Objekte in diese Datei umlenken
For Each WSh In .Worksheets
For Each Obj In WSh.Shapes
On Error Resume Next
T = "": T = Obj.OnAction
If T  "" Then
Obj.OnAction = "'" & ThisWorkbook.Name & "'!" _
& Mid$(T, InStr(T, "!") + 1)
End If
Next Obj
Next WSh
End With
End Sub
viele Grüße
Karl-Heinz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige