nach langer google suche, habe ich keine Lösung für mein Problem gefunden und wende mich hoffnungsvoll an euch!
Zum einen habe ich eine Datei in der ich all meine Makros sammeln möchte.
Zum anderen bekomme ich per export aus einem online Tool täglich Reports auf die ich dann diese gespeicherten Makros anwenden möchte.
Wenn ich jetzt beide Dateien (die mit den Makros und den Report) öffne um mir dann die verfügbaren Makros anzeigen zu lassen, läuft das gewählte Makro in der Datei in der es auch gespeichert ist und nicht in dem Report.
Was mache ich falsch?
https://www.herber.de/bbs/user/144619.xlsm
Sub Tech()
'** Neues benanntes Tabellenblatt einfügen
'** einfügen als letztes Blatt
'** Dimensionierung der Variablen
Dim blatt As Object
Dim BlattName As String
Dim bolFlg As Boolean
'** Blattname festlegen
BlattName = "Tech"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = BlattName Then bolFlg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolFlg = False Then
With ThisWorkbook
.Sheets.Add After:=Sheets(Worksheets.Count)
.ActiveSheet.Name = "Tech"
End With
End If
Dim WkSh_Q As Worksheet
Dim WkSh_Z As Worksheet
Dim rZelle As Range
Dim aUeberschr As Variant
Dim iIndx As Integer
Dim iSpalte As Integer
aUeberschr = Array("Q4", "ID")
Application.ScreenUpdating = False
Set WkSh_Q = Worksheets("ABC") ' das Quell-Tabellenblatt
Set WkSh_Z = Worksheets("Tech") ' das Ziel-Tabellenblatt
With WkSh_Q.Rows(1)
For iIndx = 0 To UBound(aUeberschr)
Set rZelle = .Find(aUeberschr(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iSpalte = iSpalte + 1
WkSh_Q.Columns(rZelle.Column).Copy Destination:=WkSh_Z.Columns(iSpalte)
End If
Next iIndx
End With
Application.ScreenUpdating = True
End Sub