AW: Kopieren aus freigegebenen Dateien
07.10.2010 04:52:15
fcs
Hallo Ptonka,
mit freigegebenen Dateien und ihren Tücken hab ich nur wenig Erfahrung.
Problem 1:
Die Tatsache, dass nach dem Einfügen der Zellen aus der freigegebenen Mappe in die andere Datei ein Explorer-Fenster (dies ist wohl eher ein Datei-Öffnen-Dialog) angezeigt wird, deutet für mich darauf hin, dass du von dem Rechner, an dem du die Aktion durchführst, keinen Zugriff auf Dateien hast mit denen die Formeln in einzelnen Zellen verknüpft sind.
Durch Deaktivieren der Anzeige von Warneldungen während der Makroausführung, kann man dies Problem umgehen. Spätestens beim Neu-Berechnen oder Öffnen der erstellten Datei wird das Problem allerdings wieder akut.
Sub Blattinhaltekopieren()
Dim wbAktiv As Workbook, wbQuelle As Workbook
Dim Dateiname As String
On Error GoTo Fehler
'Name der Datei mit den Quelldaten
Dateiname = "C:\Users\Public\Test\TestDataVerknuepft.xls"
'Zielarbeitsmappe
Set wbAktiv = ActiveWorkbook
'Quelle öffnen
Set wbQuelle = Workbooks.Open(Filename:=Dateiname, UpdateLinks:=0, ReadOnly:=True)
'Alarme deaktivieren
Application.DisplayAlerts = False
'Inhalte Blatt 1 kopieren
With wbQuelle.Worksheets(1)
With .Range(.Cells(1, 1), .Cells.SpecialCells(xlCellTypeLastCell))
.EntireColumn.Copy
wbAktiv.Worksheets(1).Range("A1").PasteSpecial Paste:=-4104 'xlPasteAll
.EntireRow.Copy
wbAktiv.Worksheets(1).Range("A1").PasteSpecial Paste:=-4122 'xlPasteFormats
End With
End With
'Inhalte Blatt 2 kopieren
With wbQuelle.Worksheets(2)
With .Range(.Cells(1, 1), .Cells.SpecialCells(xlCellTypeLastCell))
.EntireColumn.Copy
wbAktiv.Worksheets(2).Range("A1").PasteSpecial Paste:=-4104 'xlPasteAll
.EntireRow.Copy
wbAktiv.Worksheets(2).Range("A1").PasteSpecial Paste:=-4122 'xlPasteFormats
End With
End With
Application.CutCopyMode = False
wbQuelle.Close savechanges:=False
Range("A1").Select
Err.Clear
Fehler:
'Fehlerbehandlung
With Err
Select Case .Number
Case 0 'kein Fehler
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
'Alarmmeldungen wieder aktivieren --- wichtig !!!!
Application.DisplayAlerts = True
End Sub
Gruß
Franz