Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Workbook nur bestimmte Sheets importieren

Forumthread: Excel Workbook nur bestimmte Sheets importieren

Excel Workbook nur bestimmte Sheets importieren
Chris
Hallo zusammen!
Ich habe aus meinem Excel-Archiv einen Code für ein Makro rausgekramt, mit dem ich per Knopfdruck Tabellenblätter einer anderen Excel-Arbeitsmappe importiere. Das funktioniert auch soweit fast perfekt, aber:
Ziel: Ich drücke einen Button im Tabellenblatt 1, dann wähle ich die Quelldatei aus und es sollen die ersten sechs Tabellenblätter der Quelldatei in die Tabellenblätter 2 bis 7 der Datei mit dem Makro importiert werden. Das passt soweit. Allerdings wird auch das Format und die Spaltenüberschriften der importierten Tabellenblätter in das Tabellenblatt 1 mit dem Button kopiert. Jemand eine Idee, woran das liegt?
Private Sub CommandButton1_Click()  'Knopfdruck auf Button aktualisiert die Tabellenblätter aus  _
der Quelldatei
Dim fname As Variant
Dim NewWkb As Workbook          ' Definition der Zieldatei (diese Arbeitsmappe)
Dim ImportWkB As Workbook       ' Definiton der Quelldatei
Dim ImportWkB2 As Workbook
Dim sh As Variant               ' Nummer Tabellenblatt
Dim DestRange As Range          ' Ziel-Range
Set NewWkb = ThisWorkbook
fname = Application.GetOpenFilename("Aktuelle Datei Import,*.xls", , "Wähle Datei")  ' _
Dialog "Datei öffnen"
If fname  False Then
Application.ScreenUpdating = False  'Schaltet Aktualisierung Monitor aus
Set ImportWkB = Workbooks.Open(fname, ReadOnly:=True, UpdateLinks:=0)
For Each sh In ImportWkB.Sheets
NewWkb.Sheets(sh.Index).Cells.UnMerge
Set DestRange = NewWkb.Sheets(sh.Index).Range("A1")
sh.UsedRange.Copy
With DestRange
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
Set DestRange = Nothing
Application.CutCopyMode = False
If sh.Index >= 7 Then Exit For 'only 6 sheets should be imported
Next sh
ImportWkB.Close False
Set ImportWkB = Nothing
End If
Sheets(1).Select    'springt zurück auf Tabellenblatt Home
'speichern der Datei nach Import:
If ActiveWorkbook.Saved = False Then    'If-Schleife zum "Speichern unter" nach dem Update
Dim Neuer_Dateiname
Neuer_Dateiname = Application.GetSaveAsFilename(InitialFileName:="Grafik_" & Date & ". _
xls", _
fileFilter:="Excel-Arbeitsmappe, *.xls")
' ActiveWorkbook.Save
If Neuer_Dateiname = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=Neuer_Dateiname, FileFormat:=xlNormal
MsgBox "Input data updated" 'Meldung über Update erscheint
Else
MsgBox "Input data NOT updated!"
End If
End Sub

Anzeige
streiche Zeile '.PasteSpecial xlPasteFormats' oT
29.07.2010 11:41:29
JOWE
AW: streiche Zeile '.PasteSpecial xlPasteFormats' oT
29.07.2010 12:46:14
Chris
Ok, das kopiert dann nicht mehr das Format, allerdings auch nicht für die zu importierenden Tabellenblätter.
Die Spaltenüberschrift wird trotzdem noch ins Tabellenblatt 1 geschrieben.
AW: streiche Zeile '.PasteSpecial xlPasteFormats' oT
29.07.2010 13:44:35
Uppe
Hallo Chris,
ändere mal Zeile
NewWkb.Sheets(sh.Index).Cells.UnMerge
in
NewWkb.Sheets(sh.Index+1).Cells.UnMerge
Dann wird Tabellenblatt 1-6 aus Quelldatei in Tabellenblatt 2-7 der Zieldatei geschrieben. (glaube ich ;-)
Gruß Uppe
Anzeige
AW: streiche Zeile '.PasteSpecial xlPasteFormats' oT
29.07.2010 14:53:16
Chris
Ok, das hab ich.
Hab aber gerade gemerkt, dass in der Quelldatei ein Blatt (TAbelle 1) ausgeblendet wird, daher kommt das mit den Spaltenüberschriften.
Frage also: Was muss ich ändern, damit TAbellenblatt 2 bis 7 in 2 bis 7 importiert werden?
AW: streiche Zeile '.PasteSpecial xlPasteFormats' oT
29.07.2010 16:29:17
Uppe
Hallo Chris,
füge nach For Each sh In ImportWkB.Sheets
noch eine Schleife ein If sh.Index >1 Then
end if kommt vor Next sh
Gruß Uppe
Anzeige
AW: streiche Zeile '.PasteSpecial xlPasteFormats' oT
30.07.2010 11:04:01
Chris
Super, vielen Dank. Das klappt!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige