# Import per Makro von csv Datei!?



## Ide (6 Januar 2009)

Also ich habe absolut null Ahnung von dem Makrogedeh, das mal vorweg 

Ich möchte gerne Messwerte die ich auf einen USB-Stick schreibe mit Exel auswerten.

Dafür ich hätte gerne dass wenn ich auf eine Grafik in Tabelle1 klicke, automatisch das "Öffnenfenster" erscheint und ich dort meine .csv Datei auswählen kann. Die csv ist per Semikolon getrennt. Die Datei soll dann in der Tabelle2 "eingefügt" werden, da ich mit Tabelle1 auf diese zugreife.

Wäre nett wenn ihr mir helfen könntet! Weil ich bekomme das mal nicht hin.

Ach es sind maximal drei Datensätze (falls das wichtig ist).


----------



## SBC-User (6 Januar 2009)

das was du suchst ist kein einfaches excel-makro, sondern du willst ne vba-anwendung für excel haben


----------



## Ide (6 Januar 2009)

Das ist gut möglich!


----------



## SBC-User (6 Januar 2009)

was ist dir solch ein makro wert? soll die csv-datei zeilenweiße eingelesen werden und spatlenweiße getrennt durch semikolon, oder willst du nen sortieralgorithmus, definiere bitte mal die gewünschte funktion

mit wert meine ich keine finanzen sondern wie wichtig dir das ist, wg aufwand den man hätte


----------



## Thomas_v2.1 (6 Januar 2009)

Hallo,
das geht eigentlich recht einfach, aber da VBA auch in einer deutschen Excel-Version das Komma als Trennzeichen vorsieht muss man das bei einem Semikolon händisch einlesen.
Ich habe mir mal irgendwoher folgende Zeilen zusammengesucht:

```
Sub ReadfromCSVSimple(fName As String, wsName As String, Optional FS As String = ";")
   Dim hfile As Integer ' Filehandle bzw. Dateinummer
   Dim i As Long ' Zähler über alle Zeilen
   Dim OneLine As String ' Eine Zeile als String
   Dim myArr As Variant ' eine Zeile in Felder getrennt
   Dim objSheet As Excel.Worksheet
   Set objSheet = Sheets(wsName)
   objSheet.Activate
  
   hfile = FreeFile
   Open fName For Input As #hfile
   While Not EOF(hfile)
      i = i + 1
      Line Input #hfile, OneLine
      myArr = Split(OneLine, FS)
      For j = 0 To UBound(myArr)
         objSheet.Cells(i, 1 + j).NumberFormat = "@"
         objSheet.Cells(i, 1 + j).Value = myArr(j)
      Next
   Wend
   Close #hfile
End Sub
```
Dann packst du einen Button auf deine andere Tabelle und schreibst dort im Code:

```
Private Sub CommandButton_Click()
    Dim datei As String
    Dim ws As String
    datei = Application.GetOpenFilename("CSV-Dateien (*.csv),*.csv")
    If datei = "Falsch" Then Exit Sub
    ws = "Tabelle2"
    Call ReadfromCSVSimple(datei, ws)
End Sub
```


----------



## Ide (7 Januar 2009)

SBC-User schrieb:


> was ist dir solch ein makro wert? ...
> mit wert meine ich keine finanzen sondern wie wichtig dir das ist, wg aufwand den man hätte



Tja da ich jetzt in einem sehr jungen Unternehmen tätig bin, freu ich mich immer wenn ich kosten einsparen kann und so wenig wie möglich an Fremdfirmen vergeben muss.

@Thomas_v2.1:
Ich benutze OpenOffice und ich glaube das ich für sowas doch erstmal noch en anderen Rechner hinzu ziehen muss. Hab das Gefühl das taugt dafür nix...


----------



## Ralle (7 Januar 2009)

Ide schrieb:


> Ich benutze OpenOffice



Aber diese Info hätte doch gleich kommen sollen.


----------



## Ide (7 Januar 2009)

@Ralle:
Sehr sinnvoll! Ich glaube du hast es noch nichtmal benutzt


----------



## vierlagig (7 Januar 2009)

Ide schrieb:


> @Ralle:
> Sehr sinnvoll! Ich glaube du hast es noch nichtmal benutzt


 
oben steht excel unten kommste mit ooffice ... komm mal runter von deinem turm und entschuldige dich mal fein beim onkel ralle!


----------



## Ide (7 Januar 2009)

Hast du es den schonmal benutzt?


----------



## Ralle (7 Januar 2009)

Ide schrieb:


> Hast du es den schonmal benutzt?



Ja habe ich und ich habe auch nichts dagegen das zu verwenden. Frage mich woraus du das wohl schließt? Aber das war eine frühere Version und die war damals so räudig langsam, instabil und schlecht und nicht besonders gesund für MS-Office-Dokumente, daß ich davon dann Abstand genommen habe, da die halbe Welt nun einmal MS-Office-Dokumente verschickte und auch vollständige Dokumente zurückerwartete und nicht irgendwelche kastrierten Restdateien. Und wie das dann so ist, wenn man einmal auf die Nase gefallen ist, läßt man die Finger davon. Das soll aber nicht heißen, daß heutige Versionen schlecht sein müssen, aber soll ich deswegen mein Office-Paket wegschmeißen?

PS: Warum ich meine 1. Anmerkung gemacht habe? Weil Leute das lesen, sich über dein Problem Gedanken machen und dann feststellen, daß es völlig umsonst war, weil du nicht in der Lage warst, alle wichtigen Infos gleich zu erwähnen. Das ist halt einfach ineffektiv für alle Beteiligten.


----------



## Ide (7 Januar 2009)

Also ich werde ja wohl wissen womit ich die Messwerte auswerten möchte! Und das ist Excel. Ich habe lediglich Thomas gesagt das ich es statt mit OO (welches ich benutze) mal in Excel versuche. Der Kunde wird wohl auch nur Excel haben:idea:

Ausserdem war die Antwort überhaupt nicht böse gemeint (siehe Smilie). Aber wenn Herr Moderator sich angegriffen fühlt...:sm8:

Falls das jetzt hier so weiter gehen soll kannst du den Thread löschen.


----------



## Ralle (7 Januar 2009)

Ide schrieb:


> Also ich werde ja wohl wissen womit ich die Messwerte auswerten möchte! Und das ist Excel. Ich habe lediglich Thomas gesagt das ich es statt mit OO (welches ich benutze) mal in Excel versuche. Der Kunde wird wohl auch nur Excel haben:idea:
> 
> Ausserdem war die Antwort überhaupt nicht böse gemeint (siehe Smilie). Aber wenn Herr Moderator sich angegriffen fühlt...:sm8:
> 
> Falls das jetzt hier so weiter gehen soll kannst du den Thread löschen.



1. Nun ist die Verwirrung perfekt!
2. Ich mich angegriffen fühlen? Warum das denn?
3. Warum löschen?
4. Kannst mir gerne den Buckel runterrutschen.


----------



## Ide (7 Januar 2009)

Ralle schrieb:


> 1. Nun ist die Verwirrung perfekt!
> 2. Ich mich angegriffen fühlen? Warum das denn?
> 3. Warum löschen?
> 4. Kannst mir gerne den Buckel runterrutschen.



1. Warum? Die VBA-Anwendung sollte doch genau so in Calc wie in Excel laufen oder?!
2. Man könnte es meinen nach deinem ersten Beitrag auf dieser Seite
3. Weil das hier alles andere als zum Thema beiträgt
4. Dann rutsch ich mal...

Und was vierlagig damit zu tun hat kann verstehen wer will.


----------



## Ide (27 Januar 2009)

Thomas_v2.1 schrieb:


> Hallo,
> das geht eigentlich recht einfach...


Also habe das letzte Woche mal fertig gemacht. Funktionierte bis auf ein paar Erweiterungen (die ich Aufzeichnen konnte) besten! Vielen herzlichen Dank!!!


----------

