Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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.
Antworten Top
#2
Hallo,

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

Gruß Uwe
Antworten 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ß... :(
Antworten Top
#4
Hallo,

(11.07.2016, 08: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
Antworten 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?
Antworten Top
#6
(11.07.2016, 09: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
Antworten 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.
Antworten Top
#8
Hi,

(12.07.2016, 06: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")
Antworten Top


Gehe zu:


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