Hilfe VBA

  • Hallo!


    Ich bräuchte unbedingt einmal Hilfe von jemanden der sich unter vba microkrampf excel 2003 auskennt.
    Es geht darum eine datei mit mehreren spalten die mit semikolon getrennt sind als sheet zu importieren. dieses muß aber direkt unter vba passieren.


    dieses thema ist zwar total off topic abe ich werfe es einmal in alle mir bekannten foren hinein. ich hänge hier seit sonntag nachmittag nun an diesem poblem und im I-net gibt es nun lange Formel mit maximals 10MB Länge.



    vielen dank im voaus
    73 es 55 d nico
    dd6vfs

  • Hallo,
    ich habe es so gemacht:
    Open Filename For Input As #1
    Line Input #1, cLine
    Do While Not EOF(1) ' Loop until end of file.
    CounterY = CounterY + 1
    Line Input #1, cLine
    do while len(cLine)>0
    i=instr(cline,";")
    if i>0 then
    counterX=counterX+1
    hlf=left(cline,i-1)
    cline=mid(cline,i+1)
    workshsheets("MeinSheet").Cells(counterY,counterX)
    end if
    loop
    loop
    close #1


    Ist nur aus dem Stegreif hinbgeschrieben.
    Sonst empfehle ich als Buch VBA-programmierung mit Excel 97 von Michael Kofler


    Gruß


    Kurt-Erich

  • Hallo,


    versuche es mal mit Daten - Externe Daten - Textdatei importieren.


    Unter Datenbereich - Eigenschaften kannst Du die Daten automatisch aktualiseren lassen.


    Mache das häufig so und funktioniert ufb.


    Ansonsten das Problem bitte genauer schildern.


    vy 73/72 de DL3TM
    Thomas

  • 1. Mit irgendeinem Editor die Semicolons gegen Kommas austauschen
    2. Wenn das file dann die Endung .CSV hat kannst Du's direkt mit excel oeffnen

    73
    Juergen
    nnnn

  • Hallo Nico,


    öffne die Datei (ich gehe mal von einer einfachen Textdatei aus) ganz normal über das Excel Menü "Datei/Öffnen". Im ersten Menü gibst Du die Option "Trennzeichen" an. Im zweiten Menü gibst Du als Trennzeichen das Semikolon an. Im letztem Menü kannst Du festlegen wie die Zellen formatiert sein sollen (Zahlen, Text, Datum etc.). Die Einstellung "Standard" kannst Du sicherlich aber erst mal belassen. Wenn Du dieses Prozedere als Makro aufzeichnest kommt etwa folgendes heraus:


    Workbooks.OpenText Filename:= "Deine Datei . TXT" _
    , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
    True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
    TrailingMinusNumbers:=True


    Das kannst Du in Deinem VBA Programm einbinden. Wenn der Dateiname über eine Variable abgearbeitet wird mußt Du diese (STRING-) Variable entsprechend als Dateiname einsetzen.


    Gruß
    Holger

  • Hallo!


    Vielen Dank erst einmal für eure schnellen Antworten.


    Nun zu meiner Lösung die Äquivalent zu Holgers Lösung ist. Ich habe mal den ganzen Prozess des importierens per Makrorekorder aufgezeichnet (nachdem ich festgestellt habe das es auch einen Menüpunkt Importieren gibt) und mehr dann den ganzen Kram unter Vba-Editor angesehen. Nachdem alles unnötige herausgelöscht habe und den wichtigen Teil in mein Projekt kopiert habe funktioniert es ufb. Habe das Teil dann gleich erst einmal in meine Makrosammlung archiviert. Vielleicht braucht es irgendwann mal jemand.


    Da kann ich nur sagen das ich nach 2 1/2 Wochen schreiben an der Projektarbeit bis in die späte Nacht hinein (Tagsüber habe ich leider noch Vorlesungen und Prüfungen) irgendwann Betriebsblind geworden bin und den Wald vor lauter Bäumen nicht mehr gesehen habe. Ich werde mir mal an meine Rechner ein Schild hängen "Wenn nichts mehr geht --> Back to the root´s".


    Also schönen Dank noch einmal für eure Hilfe =) =) =)


    73 es 55
    de Nico
    DD6VFS