Office: Kommagetrennte Datei automatisch importieren

Helfe beim Thema Kommagetrennte Datei automatisch importieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Ich habe eine Datei. Diese speichert meinen Stromverbrauch in folgendem Format: 2010-01-27 00:01:37, 1, 1088, 87440, 87440, 87440... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Teckel, 27. Januar 2010.

  1. Teckel Erfahrener User

    Kommagetrennte Datei automatisch importieren


    Hallo

    Ich habe eine Datei. Diese speichert meinen Stromverbrauch in folgendem Format:

    2010-01-27 00:01:37, 1, 1088, 87440, 87440, 87440
    2010-01-27 00:02:55, 1, 1089, 78361, 78361, 78361
    2010-01-27 00:04:26, 1, 1090, 91838, 91838, 91838
    2010-01-27 00:06:05, 1, 1091, 98115, 98115, 98115
    2010-01-27 00:07:41, 1, 1092, 97210, 97210, 97210
    2010-01-27 00:09:00, 1, 1093, 79163, 79163, 79163

    Momentan öffne ich meine gebastelte Exceltabelle, dann öffne ich mittels webadresse die 2010-01-27.dat, dann importiere ich mittels der Einstellungen Komma als Trennzeichen die Datei. Das heißt es öffnet sich ein neues schreibgeschütztes Dokument mit den Daten. Jetzt markiere ich Spalte Datum/Uhrzeit und die 1ser. Dann füge ich die in meine Tabelle ein und erhalte meine Berechnungen.

    Meine Frage: Kann ich diese Daten irgendwie automatisch importieren? Vor allem so, dass ich nicht jedesmal wenn sich die *.dat aktualisiert hat wieder alles von Hand importieren muss?

    THX für Erleuchtung...

    Gruß Teckel
     
  2. Beverly
    Beverly Erfahrener User
    Hi,

    zeichne deine Vorgehensweise mit dem Makrorekorder auf und weise sie einer Tastenkombination zu - dann kannst du den Code immer wieder ausführen bei Bedarf.

    Bis später,
    Karin
     
    Beverly, 27. Januar 2010
    #2
  3. Teckel Erfahrener User
    Danke!

    Das bringt mich schon einen sehr großen Schritt weiter. Ich probiere gerade mit den Makros rum...
    Momentan versuche ich die beiden Abfragen (1. Ob die geöffnete Datendatei gespeichert werden soll [nein, weil sie eh schreibgeschützt ist] automatisch zu beantworten 2. Ob die Daten in der Zwischenablage anderen Anwendungen nachher noch zur Verfügung stehen sollen) zu automatisieren...

    Danke für die geleistete Hilfe Beverly

    Gruß Teckel
     
  4. Beverly
    Beverly Erfahrener User

    Kommagetrennte Datei automatisch importieren

    Hi,

    da ich deinen Code nicht kenne, kann ich nichts Konkretes dazu sagen, aber:

    zu 1.: eventuell kommst du mit .Close False weiter
    zu 2.: möglicherweise hilft Application.CutCopyMode = False weiter

    Bis später,
    Karin
     
    Beverly, 27. Januar 2010
    #4
  5. Teckel Erfahrener User
    Sub Makro3()
    '
    ' Makro3 Makro
    ' Makro am 27.01.2010 von Teckel aufgezeichnet
    '
    ' Tastenkombination: Strg+o
    '
    Workbooks.OpenText Filename:="http://192.168.0.108/b/2010-01-27.dat", Origin _
    :=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
    Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
    Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers _
    :=True
    Columns("A:A").EntireColumn.AutoFit
    Columns("A:F").Select
    Selection.Copy
    Windows("S270110.xls").Activate
    ActiveSheet.Paste
    Windows("2010-01-27.dat").Activate
    ActiveWindow.Close False
    End Sub

    So schauts momentan aus. Ich versuchte gerade nach ActiveWindow.Close dann Deine Vorschläge einzubauen... Muss aber feststellen, dass ich überhaupt keinen Plan vom Syntax habe... Aber ich probiere weiter und werde lernen...

    Edit:
    False klappt jetzt schon...


    Gruß Teckel
     
  6. Beverly
    Beverly Erfahrener User
    Hi,

    versuche es mal mit folgendem Code:
    Code:
    Sub Makro3()
    '
    ' Makro3 Makro
    ' Makro am 27.01.2010 von Teckel aufgezeichnet
    '
    ' Tastenkombination: Strg+o
    '
        Workbooks.OpenText Filename:="http://192.168.0.108/b/2010-01-27.dat", Origin _
            :=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
            Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers _
            :=True
        Columns("A:A").EntireColumn.AutoFit
        Columns("A:F").Copy Workbooks("S270110.xls").Worksheets("Tabelle1").Range("A1")
        Workbooks("2010-01-27.dat").Close False
    End Sub
    Den Namen der Tabelle "Tabelle1" musst du anpassen. Und falls "S270110.xls" die Arbeitsmappe mit dem Code ist, kannst du Workbooks("S270110.xls") ersetzen durch ThisWorkbook

    Bis später,
    Karin
     
    Beverly, 27. Januar 2010
    #6
  7. Teckel Erfahrener User
    Das klappte jetzt bis zu dem Zeitpunkt, als ich die Blätter "Daten" und "Berechnungen" ausgeblendet habe. Dann sagt er mir, das er auf dieses Blatt nicht zugreifen kann.

    Aber der Rest funktioniert schon 1A.

    Danke für Deine Bemühungen...

    Gruß Teckel
     
  8. Beverly
    Beverly Erfahrener User

    Kommagetrennte Datei automatisch importieren

    Hi,

    dann musst du das bzw. die Tabellenblätter vorher einblenden (und anschließend wieder ausblenden) - kann man mit dem Markorekorder aufzeichnen.

    Bis später,
    Karin
     
    Beverly, 27. Januar 2010
    #8
  9. Teckel Erfahrener User
    Danke sehr...
    Gruß Teckel
     
  10. Teckel Erfahrener User
    Doch nochmal ne Frage...

    Sub Makro1()
    '
    ' Makro1 Makro
    ' Makro am 27.01.2010 von Teckel aufgezeichnet
    '
    ' Tastenkombination: Strg+i

    ActiveWindow.Visible = False
    Windows("S290110.xls").Activate
    Sheets("Daten").Visible = True
    Sheets("Daten").Select
    Range("A1").Select
    Workbooks.OpenText Filename:="http://teckel.selfip.com:8000/b/2010-01-29.dat", Origin _
    :=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
    Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
    Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers _
    :=True
    Columns("A:A").EntireColumn.AutoFit
    Columns("A:F").Select
    Selection.Copy
    Windows("S290110.xls").Activate
    ActiveSheet.Paste
    Columns("A:A").Select
    Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss;@"
    Windows("2010-01-29.dat").Activate
    ActiveWindow.Close False
    Sheets("Daten").Visible = False
    Sheets("Auswertung").Select
    End Sub

    Also die Dateien sind:

    1. S290110.xls
    2. 2010-01-29.dat

    1 ist die Excelmappe mit der ich arbeite. Diese greift auf die 2 im WWW zu.
    2 ist die Kommagetrennte Textdatei.

    Frage: Da ich für jeden Tag die Dateien so wie oben 1 und 2 benennen werde... Gibt es eine Möglichkeit, das Makro so mit Platzhaltern anzupassen, dass die Dateinamen im Makro sich automatisch an den gespeicherten Excel-Dateinanmen anpassen?

    Also dass sich im Makro für den 30.01.2010 dann wenn ich die 29er Datei aufrufe und sage speichern Unter S300110.xls die Dateien auf die zugegriffen wird aufgrund der Platzhalter verändern?

    *krichs nicht mehr formuliert... muss ins Bett* ;)

    Gruß Teckel
     
  11. Beverly
    Beverly Erfahrener User
    Hi,

    das ist ein anderer Code als ich gepostet habe. In VBA kann zu 99% auf Select und Activate verzichtet werden. Wenn du den Code nach dem von mir geposteten Prinzip änderst, fallen sie weg - das erhöht die Performance deutlich.

    Ergänze den Code am Anfang durch diese Zeilen:

    Code:
        Dim strDatei As String
        strDatei = Format(Mid(Mid(ThisWorkbook.Name, 2, 6), 1, 2) & "." & _
            Mid(Mid(ThisWorkbook.Name, 2, 6), 3, 2) & ".20" & _
            Mid(Mid(ThisWorkbook.Name, 2, 6), 5, 2), "yyyy-mm-dd")
    
    und ändere den Teil:

    Code:
        Workbooks.OpenText Filename:="http://teckel.selfip.com:8000/b/" & strDatei & ".dat" ......
    Schreibe außerdem - so wie ich in meinem Betrag bereits erwähnt hatte:

    Code:
        Columns("A:F").Copy ThisWorkbook.Worksheets("Tabelle1").Range("A1") 
    Bis später,
    Karin
     
    Beverly, 29. Januar 2010
    #11
  12. Teckel Erfahrener User
    Jawoll Frau KaLeun! :)

    Ich wollte nicht einfach nur blind übernehmen... Verstehen will ich's ;) jetzt werde ich Deine Ergänzungen übernehmen / einbauen und die Veränderungen analysieren... Damit ich langsam dazulerne.

    Sitz grad beim Zahnarzt und hoffe, ich kann mich gleich konzentrieren...

    Danke Beverly
     
  13. Beverly
    Beverly Erfahrener User

    Kommagetrennte Datei automatisch importieren

    Hi,

    ich hoffe, du lebst nach der Behandlung noch ;-)

    Zur Erläuterung und besserem Verständnis:

    - im ersten Code-Teil wird aus dem Namen der Arbeitsmappe mit dem Code ThisWorkbook.Name die Zahlenfolge extrahiert, in ein Datum mit dem Format 2010-01-30 umgewandelt und auf die Variable strDatei geschrieben

    - im zweiten Code-Teil wird die Variable strDatei (mit dem Datum der Arbeitmappe mit dem Code als Inhalt) variabel in den Dateiname, der zu öffnenden .dat-Datei eingesetzt

    - ThisWorkbook bezieht sich immer auf die Arbeitsmappe mit dem Code, aus dem er gestartet wurde

    Bis später,
    Karin
     
    Beverly, 29. Januar 2010
    #13
  14. Teckel Erfahrener User
    Okay... Seit ca. einer Stunde versuch ich durch ausprobieren zu ermitteln, wie ich das Sheet.dat mittels Variablem Dateinamen wieder schließen kann... Ich bin zu blöd Kommagetrennte Datei automatisch importieren :oops:

    Code:
    Sub Makro1()
    '
    ' Makro1 Makro
    ' Makro am 27.01.2010 von Teckel aufgezeichnet
    '
    ' Tastenkombination: Strg+i
    
        Dim strDatei As String
        strDatei = Format(Mid(Mid(ThisWorkbook.Name, 2, 6), 1, 2) & "." & _
            Mid(Mid(ThisWorkbook.Name, 2, 6), 3, 2) & ".20" & _
            Mid(Mid(ThisWorkbook.Name, 2, 6), 5, 2), "yyyy-mm-dd")
    
        Workbooks.OpenText Filename:="http://teckel.selfip.com:8000/b/" & strDatei & ".dat", Origin _
            :=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
            Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers _
            :=True
        Columns("A:A").EntireColumn.AutoFit
        Columns("A:F").Copy ThisWorkbook.Worksheets("Daten").Range("A1")
        [u]Workbook.CloseText Filename:=" & strDatei & "".dat"[/u]
        
    
       
    End Sub
    Das klappt natürlich nicht...
    Gut im Code kann man nicht unterstreichen...
    Die letzte Zeile klappt nicht...

    PS: Wo kann ich denn die Syntax von VBA nachgucken...? Nicht dass ich auf ewig blöd bleibe und immer Fragen muss *schäm*
     
  15. Beverly
    Beverly Erfahrener User
    Hi,

    schau dir noch mal den Code aus meinem ersten Beitrag genau an - es heißt Workbooks und nicht nur Workbook. Und anstelle des Namens "2010-01-27.dat" muss in meinem Code dann stehen strDatei.

    Zum Lernen der VBA-Programmierung schau mal unter diesen Links:

    http://www.excel-center.de/excel/handbuch.htm
    http://www.fernuni-hagen.de/zmi/katalog/B012.shtml

    vielleicht helfen sie schon ein wenig weiter. Außerdem gibt es eine ganze Reihe an Homepages, wo du Antworten auf spezielle Problem finden kannst.

    Der Makrorekorder ist ebenfalls eine sehr gute Hilfe - da bekommt man die Befehlssyntax sozusagen "brühwarm" mitgeteilt. Der einzige Nachteil dabei ist, dass viele Befehle mit Select und Activate aufgezeichnet werden, aber das kann man ja im Nachhinein noch bearbeiten.

    Für Fragen muss man sich nicht schämen - jeder Programmierer hat mal klein angefangen und ebenfalls Fragen gestellt. Wer Fragen stellt zeigt doch, dass er seine Unwissenheit beseitigen möchte - und das ist doch keinesfalls etwas Schlechtes. Und Foren sind doch dazu da, dass man Fragen stellen kann - also stelle deine Fragen ruhigen Gewissens.

    Bis später,
    Karin
     
    Beverly, 29. Januar 2010
    #15
Thema:

Kommagetrennte Datei automatisch importieren

Die Seite wird geladen...
  1. Kommagetrennte Datei automatisch importieren - Similar Threads - Kommagetrennte Datei automatisch

  2. VBA7, Declare Function FindWindow Lib

    in Microsoft Excel Hilfe
    VBA7, Declare Function FindWindow Lib: Hallo Allerseits, Frage: Anpassung eines bereits Geschrieben Codes (Forum). Würde ich gern verwenden da es gut Passt. Quelle> VBA Beispiele Seite Datei schließen - Hajo's Excelseiten Datei>...
  3. Name der Datei durch Excel geändert

    in Microsoft Excel Hilfe
    Name der Datei durch Excel geändert: Hallo und guten Abend, Die Datei wird mittels Button (VBA) zwischen gesichert. Das Makro sichert zuvor die Datei und erstellt zus. eine Sicherungsdatei mit der Erweiterung Beispiel-"Sich"....
  4. Zugriff auf nicht vorhandene Datei seitens Excel

    in Microsoft Excel Hilfe
    Zugriff auf nicht vorhandene Datei seitens Excel: Hallo, wann immer ich in Excel Daten in eine Zelle gebe, dauert es ca. 1-2 Minuten, bevor Excel die weitere Bearbeitung freigibt. Unten links gibt es den Hinweis "Zugriff auf Datei erfolgt". Dies...
  5. Makro öffnet unerwartete Datei

    in Microsoft Excel Hilfe
    Makro öffnet unerwartete Datei: Hallo Forum, ich brächte euer Schwarmwissen. Arbeite mit Excel eine Auftragsbearbeitung. Dort habe ich mir einen Button mit Makro erstellt und nutze diesen schon lange. Das Makro generiert ein...
  6. Lösungsansatz komplexer SVERWEIS (Suchkriterium in Zweispalten und Kommagetrennt)

    in Microsoft Excel Hilfe
    Lösungsansatz komplexer SVERWEIS (Suchkriterium in Zweispalten und Kommagetrennt): Hallo Zusammen. Ich stehe vor dem Problem dass ich einen SVERWEIS Abgleich durchführen muss, wobei das Suchkriterium in zwei Spalten (A & B). Zusätzlich ist das Problem dass in Spalte B mehrere...
  7. Kommagetrennte werde in Zeilen untereinander

    in Microsoft Access Hilfe
    Kommagetrennte werde in Zeilen untereinander: Hallo Access Profis, ich habe eine Excel Datei in Access importiert wiel ichsie gern mit einer anderen Datei vergleichen möchte. Nun ist es so das in einer Datei die Werte teilweise kommagetrennt...
  8. fehlende Glieder in Reihe einer Zeile Finden und Kommagetrennt in eine Zelle schreibe

    in Microsoft Excel Hilfe
    fehlende Glieder in Reihe einer Zeile Finden und Kommagetrennt in eine Zelle schreibe: Hallo liebe Gemeinde, die Finger sind schon Wund, der Kopf raucht.... tausende Probleme mit Zahlenreihen habe ich gefunden, aber keines wie meines... Ich habe hier mehrere Zeilen mit...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden