Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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?
Anzeige
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
AW: streiche Zeile '.PasteSpecial xlPasteFormats' oT
30.07.2010 11:04:01
Chris
Super, vielen Dank. Das klappt!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige