Ich würde gerne, mit einem Makro, Daten von einer anderer Exceldatei abgreifen.
Zeitrapport.xlsx, Rapport, F:J -> Projektdetails.xlsm, DB1, A:E
Datei, Tabelle, Bezug -> Datei, Tabelle, Bezug
Das Makro funktionier recht gut, bis auf zwei Fehlermeldungen:
- Viele Daten in der Zwischenablage (Problem gelöst, siehe Makro)
- AktivX Meldung (Datensicherheitswarnung)
Vertrauensstellungscenter:
AktivX: alles aktiviert (nicht empfohlen)
Makros: alles aktiviert (nicht empfohlen)
Option Explicit
Sub Projekte_aktualisieren()
Application.ScreenUpdating = False
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Dim PROJEKTDETAILS, ZEITRAPPORT As String
PROJEKTDETAILS = Sheets("Eingaben").Cells(7, 1).Value
'Projektdetails.xlsm (Diese Excel-Datei)
ZEITRAPPORT = Sheets("Eingaben").Cells(8, 1).Value
'Zeitrapport.xlsx (andere Excel-Datei)
On Error Resume Next
Open ThisWorkbook.Path & "\" & Sheets("Eingaben").Cells(8, 1).Value For Binary Access _
Read Lock Read As 1
Close #1
If Err.Number 0 Then
'MsgBox "Datei ist bereits offen"
Windows(Sheets("Eingaben").Cells(7, 1).Value).Activate
Else
'MsgBox "Datei ist geschlossen"
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Sheets("Eingaben").Cells(8, 1).Value
End If
ActiveWorkbook.Save
' Leider muss ich an dieser Stelle die Tabelle sichern,
' damit die "Fehlermeldung: Viele Daten in der Zwischenablage" nicht mehr erscheint
Sheets("Rapport").Columns("F:J").Copy
Windows(PROJEKTDETAILS).Activate
'Windows("Zeitrapport.xlsm").Activate
' ab hier funktioniert das Makro manchmal nicht (sporatisch)
ActiveSheet.Sheets("DB1").Select
Columns("A:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(Sheets("Eingaben").Cells(8, 1).Value).Activate
'Windows("Zeitrapport.xlsx").Activate
ActiveWorkbook.Close False
Application.AutomationSecurity = msoAutomationSecurityByUI
Application.ScreenUpdating = True
End Sub
Wie bekomme ich die Fehlermeldungen weg?Sie unterbrechen das Makro.
Gibt es Verbesserungsmöglichkeiten, allgemein?
Kann mir da wer helfen?
Vielen Dank!
Lg Giuseppe