Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Daten aus Datei einlesen und in neue datei kopieren
13.07.2017 13:29:33 Rudi
NotSolved
13.07.2017 17:50:03 Ben
NotSolved
14.07.2017 09:25:46 Rudi
NotSolved
15.07.2017 13:05:53 Gast70117
NotSolved
17.07.2017 08:13:27 Rudi
NotSolved

Ansicht des Beitrags:
Von:
Rudi
Datum:
13.07.2017 13:29:33
Views:
469
Rating: Antwort:
  Ja
Thema:
VBA Daten aus Datei einlesen und in neue datei kopieren

Hallo Freunde,

 

ich bin gerade an einem Projekt dran.

Ich möchte gerne in eine vorhandene Excel Datei eine Tabellenblatt aus einer zweiten Excel Datei kopieren.

Soweit hab ich es hinbekommen, nur komme ich nicht weiter bei der definition des Blattnamens, aus der datei die kopiert werden soll. Diese kann immer unterschiedlich sein, und auch an einer verschiedener Reihenfolge, sprich nicht immer an 5 Stelle sondern mal an 7 oder nur 4 stelle der Tabellenreihenfolge.

 

 

Ich habe mir überlegt in meiner datei wo ich die Daten importieren möchte vorher in einer Zelle den Blattname hineinschreibe als Text.

Excel soll dann diesen namen nehmen und bei der zu öffnenden datei das Blatt suchen und kopieren.

 

Option Explicit

Sub Import_mit_Dialog()
Dim Quelle As Object, Ziel As Object
Dim Datei As String

On Error GoTo Fehler

'Dialog "Datei öffnen" anzeigen
Datei = Application.GetOpenFilename("Excel-Dateien(*.xlsx),*xlsx")
        
'Abbrechen falls keine Datei ausgewählt
If Datei = "Falsch" Then
  MsgBox "Keine Datei ausgewählt!", , "Abbruch"
  Exit Sub
End If

'MsgBox "Ausgewählte Datei: " & Datei, , ""
  
'Ausgewählte Datei öffnen
Workbooks.Open Filename:=Datei


Set Ziel = ThisWorkbook.Worksheets(2)

Set Quelle = ActiveWorkbook.Worksheets(5) '<-- gewähltes Blatt wird definiert als Quelle, alles andere wie gehabt

'kopieren und einfügen
Quelle.UsedRange.Copy
Ziel.Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

ActiveWorkbook.Close

'Speicher freigeben
Set Quelle = Nothing
Set Ziel = Nothing

Application.DisplayAlerts = False

Exit Sub

Fehler:
Set Quelle = Nothing
Set Ziel = Nothing

    MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
    & "Beschreibung: " & Err.Description _
    , vbCritical, "Fehler"
    
   
    
    
End Sub

 

 

Hab versucht folgendes zu ersetzten

 

Set Ziel = ThisWorkbook.Worksheets(3)

blatt = Ziel.Range("B10").Value

Set Quelle = ActiveWorkbook.Worksheets(blatt)

 

Doch er Zeigt mir immer Laufzeitfehler an! Obwohl in Zelle B10 der Blattanme aus der zu kopierden Datei steht.

hat jemand einen rat?

 

Desweiteren würde ich gerne Wissen, ob es möglich ist die zu kopierende Datei im Hintergrund zu öffnen und dann wieder zu schließe ohne zu speichern? Aktuell öffnet sich die zu kopierende Datei. Ich schließe sie dann wieder und Excel fragt mich ob ich die datei als Kopie sichern möchte. Danach kommt noch eine Meldung das sich noch daten im zwischenspeicher befinden und ob man diese auch sichern möchte. Dies ganze möchte ich gerne vermeiden. Am liebsten wäre es mir so:

 

Ich drücke auf meine Schaltfläche, wähle die Excel datei aus und das wars! Es wird im Vordergrund nichts geöffnet und auch nichts als Kopie gesichert. Es erscheint auch keine Meldung von wegen Zwischenspeicher bla bla bla. Ich könnte mir vorstellen das anch den import eine Meldung erscheint wie " Import abgeschlossen"

 

Danke!!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst genau und ausführlich
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
  • Bitte markieren Sie Ihre Anfrage als erledigt wenn Ihnen geholfen wurde
Thema: Name: Email:

 
 

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Daten aus Datei einlesen und in neue datei kopieren
13.07.2017 13:29:33 Rudi
NotSolved
13.07.2017 17:50:03 Ben
NotSolved
14.07.2017 09:25:46 Rudi
NotSolved
15.07.2017 13:05:53 Gast70117
NotSolved
17.07.2017 08:13:27 Rudi
NotSolved