Importieren von Daten aus einer .xlsm Datei
#1
Hallo,

ich habe folgendes Problem: Ich möchte eine Tabelle (.xlsm) erstellen, welche mit Daten aus einer anderen (monatlich komplett neu erstellten) Excel-Datei (auch .xlsm) gefüttert werden soll.

Folgendes Modul habe ich bereits:
Code:
Sub ImportNeueDaten()
   Dim Quelle As Object, Ziel As Object
   Dim Datei As String
  
   On Error GoTo Fehler
  
   'Dialog "Datei öffnen" anzeigen
   Datei = Application.GetOpenFilename("Excel-Dateien (*.xls;*.xlsm;*.xlsx), *.xls; *.xls;*.xlsm;*. xlsx", MultiSelect:=True)
  
   '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 Quelle = ActiveWorkbook.Worksheets(1)
   Set Ziel = ThisWorkbook.Worksheets(1)
  
   'kopieren und einfügen
   Quelle.UsedRange.Copy Ziel.Cells(1, 1)
  
   ActiveWorkbook.Close
  
   'Speicher freigeben
   Set Quelle = Nothing
   Set Ziel = Nothing
  
   Exit Sub
  
Fehler:
   Set Quelle = Nothing
   Set Ziel = Nothing
  
   MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
       & "Beschreibung: " & Err.Description _
       , vbCritical, "Fehler"
End Sub

Ausgeführt wird dieses über ein UserForm mit CommandButton.
Allerdings wird mir nachdem ich eine Datei auswähle der Fehler
"FehlerNr.: 13
Beschreibung: Typen unverträglich" angezeigt.
Was mache ich falsch?
Die Quelldatei ist sehr groß, liegt es vielleicht daran? Genauer werden nur die Daten aus dem Bereich Q5475 bis JQ11106 benötigt, es sollen keine Makros übernommen werden.
Top
#2
Hallo,

ändere MultiSelect:=True in MultiSelect:=False.

Gruß Uwe
Top
#3
Sad 
Hallo! 

Vielen Dank für die Anwort!
Die Fehlermeldung kommt zumindest nicht mehr. 
Allerdings öffnet sich meine Quelldatei jetzt und schließt nicht mehr. Dann hängt sich alles auf und ich muss alles komplett schließen. 
Ich fürchte meine Quelldatei ist doch zu groß... :(
Top
#4
Hallo,

(11.07.2016, 09:15)D K schrieb: Ich fürchte meine Quelldatei ist doch zu groß... :(

warum kopierst Du alles, wenn Du nur einen bestimmten Bereich brauchst?
Teste mal so:
'kopieren und einfügen
'Quelle.UsedRange.Copy Ziel.Cells(1, 1)
Quelle.Range("Q5475:JQ11106").Copy Ziel.Cells(1, 1)
Gruß Uwe
Top
#5
Danke! 
Ich hatte vergessen zu erwähnen, dass die benötigten Daten in dem Reiter "Daten" stehen. An welcher Stelle füge ich diese Information im Code ein?
Top
#6
(11.07.2016, 10:24)D K schrieb: Danke! 
Ich hatte vergessen zu erwähnen, dass die benötigten Daten in dem Reiter "Daten" stehen. An welcher Stelle füge ich diese Information im Code ein?

Set Quelle = ActiveWorkbook.Worksheets("Daten")
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • D K
Top
#7
Mir hat das so weit sehr geholfen, danke!!


Ist es auch möglich die neu eingespielten Daten erst in Zeile 2 der Tabelle einzufügen, so dass man in die erste Zeile festgelegte Begriffe zum Filtern schreiben kann?
Probiere seit gestern hin und her und bekomme nichts zustande.
Top
#8
Hi,

(12.07.2016, 07:38)D K schrieb: Probiere seit gestern hin und her und bekomme nichts zustande.

in das Ziel.Cells einfach eine 2 für die zweite Zeile eintragen:
Quelle.Range("Q5475:JQ11106").Copy Ziel.Cells(2, 1)

diese Beiden sind identisch:
Cells(Zeile, Spalte) = Cells(2, 1)
Range("SpalteZeile") = Range("A2")
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste