Excel import/export problem

Hallo zusammen!
Ich fange zuerst mit einer „einfachen“, groben Erklärung meiner Situation an, bevor ich mein Problem beschreibe!

Ich besitze ein riesiges csv file, mit ca 9millionen zeilen! kann im excel also nicht dargestellt werden bzw nur 1 048 576! in meiner csv sind 259 unterschiedliche zähler mit je ca 33900 werten!
Diese csv datei importiere ich ins access, da sie ja im excel abgeschnitten und somit nicht vollständig dargestellt wird!
Danach mache ich eine Abfrage nach den gewünschten Zähler und mache einen export als excel file!

Soweit so gut! die daten dann im excel werden noch berechnet z.b mittelwert usw!

Wenn ich einen Anderen Zähler haben will, gebe ich einfach einen anderen an, und die vorandene excel wird überschrieben! Passt auch!

soooo, WICHTIG:! da ein zähler max 35040 Werte aufweisen kann, und die meisten irgendwo zwischen 32000 und 34000 liegen, deshalb, habe ich die felder wo berechnet wird (also mit Formeln drin), bis 35040 gezogen und so eingestellt, dass wenn er keine berechnung durchführen kann, da z.b. weniger daten vorhanden sind, das feld frei bleiben soll (die formel steht aber trotzdem drin)!! Passt soweit auch!

NUR (P R O P L E M)!!!
ich würde diese excel datei, gerne wieder ins access bringen, da ich aus dieser bearbeiteten datei gerne wieder abfragen machen würde!

Nun aber das problem beim import, da access die felder nicht importieren kann, welche leer sind (bzw eine formel drin steht)!!!

wisst ihr was ich meine?

_____

Mein ansatz wäre, nachdem ich die access ins excel exportiert habe (welche automatisch bearbeitet wird, da sich die berechnungen immer auf die gleichen zellen beziehen und die zellen beim export automatisch überschrieben werden); und sie vom excel automatisch bearbeitet wurde, sie nochmals zu speichern, ohne dass die Formeln drin wären! und ich diese dann ins acces zurück importiere!!

also

access —> excel

excel berechnet automatisch

excel ----> excel aber ohne dass die formeln übertragen werden, nur werte (automatisch irgendwie, weiss das es mit kopieren, einfügen werte funktionieren würde)

excel ----> access

was sagt ihr, könnt ihr mir bei meinem lösunsansatz weiterhelfen oder habt vielleicht einen anderen??

mfg und vielen dank luca

Ich weiß nicht, ob ich das jetzt richtig verstanden habe, aber wenn es nur deswegen nicht geht, dass da Formeln drin sind, kannst du die doch einfach auf ein anderes Datenblatt packen. Dann kommen die Formeln nicht auf dem ersten Blatt vor und wenn du nur das erste Blatt benutzt, um die Daten wieder zu importieren, passt es dann ja.
Warum willst du das überhaupt zu Excel exportieren? Access hat doch auch eine Menge Funktionen wie Mittelwert etc.

hmmm eig keine schlechte idee! problem ist aber, dass ich die berechnungen ja im access benötige!! also wird es nichts!!

ja access hat mittelwert, aber nicht in der komplexen form wie ich es benötige! es sind weitaus komplexere rechenschritte dabei!
bsp für mittelwert

A bräuchte den Mittelwert von (A1:A4); (A4:A8) usw
1
2
3
4
5
6
7
8

… diese lösung bringt mir also nichts!! :frowning: danke td

eine idee wäre, im vba z.B.
den gesamten inhalt meiner excel kopieren,
dann inhalte = „WERTE“ in ein neues excel einfügen und speichern!!

leider kenne ich mich im vba zu wenig für das aus!!!

Und wenn du die Excel-Tabelle als .csv-Datei speicherst? Dann wird der Ausgabewert einer Formel als Text gespeichert, also genau so, wie du ihn auch in Excel siehst

LG Nico

eine idee wäre, im vba z.B.
den gesamten inhalt meiner excel kopieren,
dann inhalte = „WERTE“ in ein neues excel einfügen und
speichern!!

Hallo Luca,

In Excel Alt+F11, Einfügen—Modul, Code reinkopieren, ggfs. Blattnamen anpassen,Editor schließen.
In Excel Alt+F8, Makro „Kopier“ ausführen lassen.

Option Explicit

Sub Kopier()
Worksheets("Tabelle1").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub

Und zu den 9 Millionen Zeilen in der csv, man kann schon versuchen die in Excel einzulesen per Vba. Dann könnte man sie auf einem Blatt in verschiedenen Spalten aufteilen oder in einer mappe in verschiedenen Blättern oder auf verschiedenen Mappen jeweils ins erste Blatt aufteilen.

Was kann denn Access importieren, die Blätter einer Mappe oder nur jeweils das erste Blatt so wie bei csv-Export in Excel?

Gruß
Reinhard

Grüezi Luca

Ich fange zuerst mit einer „einfachen“, groben Erklärung
meiner Situation an, bevor ich mein Problem beschreibe!

Viel wichtiger wäre hier noch zu wissen, mit welcher Office-Version Du denn arbeitest.

Ich besitze ein riesiges csv file, mit ca 9millionen zeilen!
kann im excel also nicht dargestellt werden bzw nur 1 048 576!
in meiner csv sind 259 unterschiedliche zähler mit je ca 33900
werten!
Diese csv datei importiere ich ins access, da sie ja im excel
abgeschnitten und somit nicht vollständig dargestellt wird!
Danach mache ich eine Abfrage nach den gewünschten Zähler und
mache einen export als excel file!

Soweit so gut! die daten dann im excel werden noch berechnet
z.b mittelwert usw!

…denn mit xl2010 und dem kostenfreien MS-Addin ‚PowerPivot‘ kannst Du problemlos mehrere Millionen Datensätze in Excel einlesen und da dann z.B: mit Pivot-Tabellen verarbeiten.

Oder Du erzeugst eine direkte Datenverbindung zu deinem .CSV-File und wertest diese dann über eine Pivot-Tabelle aus.

BTW:
Wie ist deine .CSV-Datei denn genau aufgebaut?
Welche Spalten- und Dezimaltrenner werden darin verwendet?

was sagt ihr, könnt ihr mir bei meinem lösunsansatz
weiterhelfen oder habt vielleicht einen anderen??

Also eigentlich ja eher zweiteres - die Daten direkt abfragen und/oder auswerten. Die Möglichkeiten hängen aber von den eingesetzten Office-Versionen ab.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

kann man das in einem makro automatisieren?

weil ich möchte am ende nurmer ein makro von access ausführen!

also ein makro im excel erstellen, dass die datei extra in csv speichert! (also habe ich die gleiche excel 2 mal, einmal in csv und einmal in xlsx)

und später führe ich dann ein makro im access aus, welches das „umspeichermakro“ in excel auslöst!!!

Klar. Geh einfach ein eine Excel-Datei und dann auf „Makro aufzeichen“. Dann speicherst du das einmal als .xlsx- und einmal als .csv-Datei und drückst dann auf das Stop-Zeichen.
Wenn du das in Access aufrufen möchtest, solltest du das Makro aber in der „Persönlichen Makroarbeitsmappe“ speichern, da die Excel-Datei ja erst erzeugt wird und das Makro dann erst aufgezeichnet werden muss.
Wie du das jetzt genau verknüpfst, müsstest du mal nachgucken oder auf andere Antworten warten, da ich jetzt noch nicht so viel mit Makros gearbeitet habe.

Die Variante, das als .csv-Datei zu speichern, haut aber hin, oder?

LG Nico

Hallo Luca,

kann man das in einem makro automatisieren?

Makro ist wie Toyota, (fast) nichts ist unmöglich.

Ganz sicher Vielleicht wärest du schon näher an einer möglichen Lösung wenn du auf Thomas und mich auch eingegangen wärst.

Gruß
Reinhard

sorry, dass ich nicht mehr zurückgeschrieben habe! hatte andere arbeiten die eine höhere priorität hatten!! ich werde es gleich mit euren vorschlägen probieren! melde mich noch! danke

also dass mit dem csv funktioniert nun mal!
nun bräuchte ich noch ein makro, dass mir die excel datei als xlsx speichert, und die gleiche datei nochmals als csv speichert!!

und später dann soll dieses makro wieder in (oder von access aus) aufgerufen werden!

weis leider nicht wie ich das machen soll!

habe zwar

Sub save_as_csv()
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:= _
„C:\Dokumente und Einstellungen\kainzner\Desktop\abfrage2.csv“, FileFormat:= _
xlCSV, CreateBackup:=True
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub

zum speichern als csv, aber ich kann die exceldatei mit makro nicht speichern, da eine fehlermeldung kommt!
verwende office 2007

Hi Luca,

als du das Makro aufgezeichnet hast, hast du es zuerst als .xlsx- und dann als .csv-Datei gespeichert? Wenn nicht, probier das mal. Ich schätze, dass beim Speichern als .csv-Datei gewisse Excel-Daten verloren gehen und wenn du es danach als .xlsx-Datei speichern willst, deswegen eine Fehlermeldung bekommst.

LG Nico

nico das problem ist solches, wenn ich eine excel datei mit makro speichern will, ist sie keine xlsx sondern eine xlsm!!
die excel datei kommt aber von access, also wird es immer eine xlsx sein!da acces nicht in xlsm exportieren kann!!

hmmm :L —