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

Fehler beim Import (kopieren & einfügen) eines Zellbereichs

Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 13:50:54
Ken871505
Hallo zusammen,

Ich möchte mit meinem VBA einen Zellbereich aus einem Excel-Workbook importieren, damit ich die Daten bearbeiten und anschließend in eine neue Datei exportieren kann. Beim Import der Daten in meine VBA-Datei ist ein Fehler aufgetreten, den ich bis jetzt noch nie gesehen habe.

Die Methode Import_Data() öffnet die gewünschte Datei, kopiert den Zellbereich in der Datei und fügt ihn zur weiteren Bearbeitung in die VBA-Datei ein.
Ich habe den Code mit einer eigens erstellten Test-Datei getestet, damit funktioniert alles.
Wenn ich den Code allerdings mit der Originaldatei ausführe, werden nur folgende Zellen in der VBA-Datei angezeigt.

"
A6
1.49.0.0



Stock
A8
Item
Sandvik.SmartSupply.Stock.Administration.ImportExport.ImportExportItem, Sandvik.SmartSupply.Stock, Version=1.49.0.0, Culture=neutral, PublicKeyToken=null
Spalte1#Column1#False#False#;Spalte2#Column2#False#False#; ...
"

die letzte Zeile enthält die Spaltenüberschriften des zu importierenden Zellbereichs.

Hier der Code dazu:


Public FileToOpen As Variant
Public OpenBook As Workbook
Public MeineTabelle As ListObject

Sub Import_Data()

Application.ScreenUpdating = False

'FileToOpen ist der Dateipfad, der zu importierenden Datei
FileToOpen = Application.GetOpenFilename(Title:="Datei importieren")
'Wenn Datei ausgewählt ist, dann...
If FileToOpen > False Then
'Application.DisplayAlerts = False
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Unprotect
Dim DataToCopy As Range
Set DataToCopy = OpenBook.Sheets(1).UsedRange
'Application.CutCopyMode = False
DataToCopy.Copy
ThisWorkbook.Worksheets("Maschinendaten").Range("A10").PasteSpecial xlPasteValues
'ThisWorkbook.Worksheets("Maschinendaten").Range("A10").End(xlToRight).End(xlDown)
OpenBook.Protect

'Tabelle formatieren
Dim AktuellerBereich As Range
Set AktuellerBereich = ThisWorkbook.Worksheets("Maschinendaten").Range("A10").CurrentRegion
'Den aktuell ausgewählten Bereich als Tabelle formatieren
'Application.CutCopyMode = False
'ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes).Name = "Item__3"

Set MeineTabelle = ThisWorkbook.Worksheets("Maschinendaten").ListObjects.Add(xlSrcRange, AktuellerBereich, , xlYes)
MeineTabelle.Name = "Item__3"

OpenBook.Close False
Application.DisplayAlerts = True
End If
Application.ScreenUpdating = True

End Sub


Der Fehler müsste meines Wissens nach entweder in der Zeile "Set DataToCopy = OpenBook.Sheets(1).UsedRange" liegen.
Oder (wahrscheinlicher) die Originaldatei lässt sich aus einem Grund, der mir unbekannt ist, nicht richtig importieren.

Ist jemandem von Euch ein solcher Fehler bekannt und könnt mir helfen?
Ich bin für jede Hilfe dankbar.

Viele Grüße
Ken

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 14:21:05
ralf_b
stehen denn diese Daten irgendwo in der zu öffnenden Datei?
sieht ein bisschen so aus als ob du da eine Datenbank(ERP) Abfrage versucht hast.
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 18:02:17
Yal
Hallo Ken,

CurrentRegion ist zu ungenau, da keine Garantie, dass im betrachteten Bereich alle befüllte Zellen nebeneinander vorliegen. Auch über A10 könnten damit Zellen einbezogen werden, die nichts damti zu tun haben. Wenn Du schon ein Quellen-Bereich in der Hand hast, kannst Du ganz genau ermitteln, welche grösse hat.

Sub Import_Data()

Dim FileToOpen As Variant
Dim OpenBook As Workbook
Dim Quelle As Range

Application.ScreenUpdating = False
'Application.DisplayAlerts = False

FileToOpen = Application.GetOpenFilename(Title:="Datei importieren")
If FileToOpen > False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Unprotect
Set Quelle = OpenBook.Sheets(1).UsedRange
Quelle.Copy
With ThisWorkbook.Worksheets("Maschinendaten")
.Range("A10").PasteSpecial xlPasteValues

.ListObjects.Add(xlSrcRange, .Range("A10").Resize(Quelle.Rows.Count, Quelle.Columns.Count), , xlYes).Name = "Item__3" 'Eine Tabelle wird erzeugt und "Item__3" benannt
End With
OpenBook.Close False 'protect wird nicht benötigt, weil Änderungen nicht gespeichert werden.
End If

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


VG
Yal
Anzeige
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 14:50:00
Ken871505
Danke Ralf für die schnelle Rückmeldung!


Ja in der Spalte1 stehen Einträge im Format Stock.Item12345.

Weißt du zufällig warum der Zellbereich dabei so zerschossen wird und nach welchen Begriffen ich suchen muss um auf eine Lösung zu kommen?


Beste Grüße
Ken
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 15:12:12
ralf_b
dir ist schon klar das man von der Ferne keine gute Diagnose für so einen speziellen Fall abgeben kann.
deshalb sage ich einfach du kopierst genau das was du in der Usedrange findest und das landet auch in deinem Zielbereich.
Welches Format hat denn die Quelldatei? Ist es eine ordentliche xlsx?
Anzeige
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 18:01:31
Ken871505
Hallo Ralf,

Ich hatte bis jetzt noch nicht so viele Berührungspunkte mit diesem Thema und frage mich woran der Fehler liegen kann.

Die Datei ist eine xlsx-Datei, wie die Test Datei auch. Die Arbeitsmappe ist allerdings geschützt, daher die Zeile “OpenBook.unprotect”.

Es kann gut sein, dass die Datei aus einem ERP Datensatz kommt.

Ich vermute den Fehler auch an der zu öffnenden Datei selbst, kann den Fehler mit dem Debugger leider nicht genau detektieren.

Gibt es Einstellungen, an einer Datei, die via VBA verändert werden können, die einen solchen Import ermöglichen?


Beste Grüße
Ken
Anzeige
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
08.03.2024 18:42:46
ralf_b
der Code, den du gezeigt hast kopiert einen Excelzellbereich in einen Andern. Es wird da eigentlich nichts importiert.
Da wird auch nichts umgeändert.
Evtl. ist das Blatt 1 das du hiermit OpenBook.Sheets(1) ansprichst nicht das richtige in der Datei.
Oder das Blatt selbst ist auch geschützt und nicht nur die Datei. Aber da kenn ich mich nicht wirklich im Detail aus welche Auswirkungen das hat.
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
11.03.2024 00:32:40
Ken871505
Vielen Dank Ralf für deine Hilfe!

Ich vermute den Fehler immer noch an der Datei, die den Datenbereich enthält. Die Datei enthält nur ein Datenblatt, ich glaube nicht, dass der Fehler bei OpenBook.Sheets(1) liegt.
Ich glaube der Fehler ist am Blattschutz oder einer anderen Einstellung der Datei.
Weiß jemand, wie der Blattschutz sich aufheben lässt um die Daten zu kopieren? Oder ob es an einem anderen Problem liegen könnte?

Beste Grüße
Ken
Anzeige
AW: Fehler beim Import (kopieren & einfügen) eines Zellbereichs
11.03.2024 22:01:26
ralf_b
OpenBook.Sheets(1).unprotect "passwort" ,sofern mit passwort gesetzt.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige