AW: Fehlermeldung
20.03.2009 15:16:53
fcs
Hallo mandy,
in der Datei aus der du die Tabellenblätter Einfügen willst sind für Tabellenbereich Namen festgelegt.
Der gleiche Name existiert auch in der Datei, in der du die Blätter einfügen willst. Das löst dann beim Einfügen die Meldung aus.
Wenn du die Bereichsnamen in den eingefügten Blättern nicht mehr benötigst, dann kannst du die Meldung einfach mit "Ja" bestätiguen
Falls es sehr viele Meldungen dieser Art gibt, dann ist es am Besten die Namen vor dem Kopieren zu löschen.
Hier die Makro-Anpassung, die die Namen in der Quelle lösch.
Gruß
Franz
Sub TabellenblaeterHolen()
'Kopiert alle Tabellenblätter (nur Werte) aus Quellmappe in die Zielmappe
Dim wbZiel As Workbook
Dim wbQuelle As Workbook, objNamenQ As Name
Dim varWB_Quelle, wks_Quelle
On Error GoTo Fehler
'ZielArbeitsmappe festlegen
Set wbZiel = ActiveWorkbook
'Quelldatei auswählen
varWB_Quelle = Application.GetOpenFilename(Filefilter:="Excel(*.xl*),*.xl*", _
Title:="Bitte Datei mit zu importierenden Blättern auswählen")
If varWB_Quelle False Then
Set wbQuelle = Application.Workbooks.Open(Filename:=varWB_Quelle, ReadOnly:=True)
'in allen Blättern der Quelle die Formeln durch Werte ersetzen
For Each wks_Quelle In wbQuelle.Worksheets
wks_Quelle.UsedRange.Copy
wks_Quelle.UsedRange.PasteSpecial Paste:=xlPasteValues
Next
'Namen löschen
For Each objNamenQ In wbQuelle.Names
With objNamenQ
If InStr(1, .Name, "Print") > 0 Then
'Bereiche mit Druckeinstellungen nicht löschen
Else
.Delete
End If
End With
Next
Application.CutCopyMode = False
'Blätter kopieren
wbQuelle.Sheets.Copy after:=wbZiel.Sheets(wbZiel.Sheets.Count)
'Quelle wieder schließen ohne speichern
wbQuelle.Close savechanges:=False
End If
Fehler:
With Err
If .Number 0 Then
Select Case .Number
Case 9999999
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End Select
End If
End With
End Sub