Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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

Tabellenblatt aus andere Excel-Datei laden

Tabellenblatt aus andere Excel-Datei laden
13.01.2009 09:02:00
Joachim
Hi,
ich benutze folgenden Code, um ein bestimmtes Tabellenblatt aus einer anderen Excel-Datei zu laden:
Dim Bereich As Range
'Quelle
With Workbooks("Datenimport.xls").Sheets("Rohdaten")
Set Bereich = .Range("A1", .Cells.SpecialCells(xlCellTypeLastCell))
End With
With Application
.ScreenUpdating = False
.DisplayAlerts = False
'Zieldatei
With Workbooks("Report.xls").Sheets("Daten einlesen")
.Cells.Clear
Bereich.Copy
.Range("A1").PasteSpecial
End With
.CutCopyMode = False
.DisplayAlerts = True
.ScreenUpdating = True
End With
der Code funktioniert zwar, ist aber sehr unflexiebel. Wenn sich mal der Dateiname meiner Quelle ändert, muss ich das immer wieder im Code anpassen (Name des Tabellenblatts bleibt immer gleich) und die Quelldatei und Zieldatei müssen beide immmer in der selben ExcelDatei geöffnet sein, sonst funktioniert der Code nicht.
Gibt es vielleicht die Möglichkeit, den Code so zu schreiben, dass ich mir die Quelldatei durch den Öffnen-Dialog selber wählen kann und dass sich der Code das Tabellenblatt "Rohdaten" dann auch lädt, wenn diese nicht geöffnet ist ?
Danke mal
Joachim

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt aus andere Excel-Datei laden
13.01.2009 09:12:00
Tino
Hallo,
geht es so?
Sub Import()
Dim Bereich As Range
Dim myDatei As Workbook
Dim sPfad As String

sPfad = Application.GetOpenFilename("Excel Files (*.xls), *.xls")

With Application
 .ScreenUpdating = False
 .DisplayAlerts = False

        Set myDatei = Workbooks.Open(sPfad, , True)
        
        With myDatei.Sheets("Rohdaten")
         Set Bereich = .Range("A1", .Cells.SpecialCells(xlCellTypeLastCell))
        End With
        
        'Zieldatei 
        With Workbooks("Report.xls").Sheets("Daten einlesen")
        .Cells.Clear
         Bereich.Copy
        .Range("A1").PasteSpecial
        End With
        
        myDatei.Close False

 .CutCopyMode = False
 .DisplayAlerts = True
 .ScreenUpdating = True
End With

Set myDatei = Nothing
End Sub


Gruß Tino

Anzeige
Ja, so gehts, Danke
13.01.2009 09:34:00
Joachim
Supi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige