Hallo M.O.,
habe nun nochmal eine neue Datei eingerichtet und mit diesem Makro versucht :
Sub vers()
'
' vers Makro
'
'
ChDir "Y:\erspi\fhemlog\test"
Workbooks.Open Filename:="Y:\erspi\fhemlog\test\erspi_test.xlsm"
Application.Wait (Now + TimeValue("0:00:03"))
Application.MacroOptions Macro:="PERSONAL.XLSB!vers", Description:="", _
ShortcutKey:=""
End Sub
In der Datei "erspi_test.xlsm" dann das bekannte Makro :
Private Sub Workbook_Open()
Dim objWSHShell As Object
Dim lngTimeout As Long
Application.Wait (Now + TimeValue("0:00:02"))
'Windows Script Host Objekt erzeugen
Set objWSHShell = CreateObject("WScript.Shell")
'Anzeigedauer in Sekunden festlegen
lngTimeout = 5
Select Case objWSHShell.Popup("Soll das Makro ausgeführt werden?", lngTimeout, "Nachfrage", 36)
Case vbNo
'Falls nein gedrückt wird, dann Makro verlassen
Exit Sub
End Select
'Falls ja gedrückt wird, oder die Zeit abgelaufen ist, dann makro1 aufrufen
' erspineu Makro
Sheets("Anlagenprotokoll").Select
Range("AH2:AR2").Select
Selection.Copy
Dim lngLetztCopye As Long
Dim wksQ As Worksheet 'Quelle
Dim wksZ As Worksheet 'Ziel
Set wksQ = Workbooks("erspi_test.xlsm").Worksheets("Anlagenprotokoll")
Set wksZ = Workbooks("erspi_test.xlsm").Worksheets("Anlagenprotokoll")
lngLetzte = IIf(IsEmpty(wksZ.Cells(wksZ.Rows.Count, 1)), wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row, wksZ.Rows.Count)
wksQ.Range("AH2:AR2").Copy
wksZ.Cells(lngLetzte + 1, 1).PasteSpecial Paste:=xlValues
Application.Wait (Now + TimeValue("0:00:02"))
ThisWorkbook.Save
Set obWSHShell = Nothing
ActiveWindow.Close
End Sub
und es funktioniert, das ganze starte ich dann mit einer .bat :
TASKKILL /IM excel.exe
timeout 5 /nobreak
start excel.exe Y:\erspi\fhemlog\test\erspi_test.xlsm
timeout 10 /nobreak
TASKKILL /IM excel.exe
exit
tatata alles ok !
Das war nur dank Deiner super Hilfe möglich, besten Dank dafür, wenn ich es kapiere vergebe ich Dir natürlich Punkte.
Ganz liebe Grüße aus dem Nordschwarzwald von Peter