online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Umbrella vom 28.09.2022, 12:06 Options

Daten aus .ASC files kopieren und in eine neue Exceldatei untereinander einfügen

Hallo zusammen,

ich habe ca. 1000 .ASC files mit Daten, die ich alle in eine Excel-file eintragen möchte um ein einziges Diagramm daraus zu machen. Alle Dateien einzeln zu öffnen dauert zu viel Zeit und ist auch eine zumutung. Leider kenne ich mit Makros nicht besonders gut aus und hoffe ihr könnt mir dabei helfen.

Wie schon oben genannt habe ich ca 1000 .ASC Dateien mit unterschiedlichem Dateinamen. Wenn ich die Datei öffne erhalte ich in Spalte A das Datum mit Uhrzeit und ind Spalte B eine Temperatur. Die Tabellenblätter sind gleich benannt wie die Datei. Von Zeile 8 bis 1007 sollen die Daten aus jeder .ASC Datei aus dem Ordner kopiert werden und in eine seperate Datei untereinander eingefügt werden. Hieraus soll anschließend ein Diagramm erstellt werden.

Benötige ich ein zusätzliches Makro, das die .ASC Dateien erst in .xls Dateien umwandelt?

Ich verwende Office 2003.

Ich hoffe mir kann bei meinem Problem jemand helfen. Falls es noch Fragen gibt einfach kurz anschreiben.


Antwort schreiben

Antwort 1 von coros vom 28.09.2022, 12:13 Options

Hallo,

das Öffnen der Dateien und das Einlesen sollte nicht das Problem darstellen (Eine Vermutung, da ich die .ASC Dateien nicht kenne), aber das größere Problem liegt eher in der Datenmenge. Excel 2003 unterstützzt nur 65536 Zeilen. Bei Dir kommen aber ca. 999000 Zeilen zusammen, was nicht mehr auf ein Tabellenblatt passt.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Umbrella vom 28.09.2022, 13:12 Options

Die Datenmenge kann ich noch reduzieren auf 96 Dateien, da es sich hierbei um mehrere Temperatursensoren geht.
Dennoch komme ich dann ja auf ca 96000 Zeilen, was immernoch zu viel ist. Wäre es möglich das Makro so zu schreiben dass nur von einer bestimmten Anzahl Dateien die Daten kopiert werden?

Antwort 3 von coros vom 28.09.2022, 13:25 Options

Hallo Namenloser,

das kann man schon realisieren. Allerdings müsstest Du sagen, welche Daten, z.B. von welcher Zeile, die Daten kopiert werden. Eventuell kannst Du ja mal 1 oder 2 von den .ASC Dateien z.B. http://www.file-upload.net/ hochladen und uns den Link, den Du erhälst hier mitteilen, damit man sich die Datei mal ansehen kann.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Umbrella vom 28.09.2022, 14:26 Options

Hallo coros,
hier mal den Link zu einer Datei http://www.file-upload.net/download-2850795/Bauteiltemperatur-1_0014.ASC.html
Alle Dateien sehen gleich aus.
Ich benötige das Datum+Uhrzeit und die Temperatur. Die anzahl der Daten kann ich soweit reduzieren dass die maximale menge nicht überschritten wird.

Antwort 5 von coros vom 28.09.2022, 19:14 Options

Hallo Namenloser,

nachfolgend mal ein Makro, dass Dir alle ASC-Dateien in einem vorgegebenen Verzeichnis in ein neu angelegtes Tabellenblatt einließt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Const intAnzahlAnfang   As Integer = 8
Const intAnzahlEnde     As Integer = 10
Const strPath           As String = "H:\Müll\"

Sub Dateien_auslesen()
Dim strExportfile       As String
Dim strWert()           As String
Dim strZeile            As String
Dim strText             As String
   
Dim intDateinummer      As Integer
Dim intWert             As Integer

Dim lngFirstRow         As Long

Dim Dateityp$

Dim wksAuslesung        As Worksheet

On Error Resume Next
Application.DisplayAlerts = False
Sheets("Auslesung").Delete
On Error GoTo 0
Application.DisplayAlerts = True

Set wksAuslesung = Sheets.Add

With wksAuslesung
    .Name = "Auslesung"

    Dateityp = Dir(strPath & "*.ASC")
    Do While Dateityp <> ""
        If Right(Dateityp, 3) = "ASC" Then
        
            intWert = 0
            strExportfile = strPath & Dateityp
            intDateinummer = FreeFile
                
            Open strExportfile For Input As #1
                Do While Not EOF(1)
                    Line Input #intDateinummer, strZeile
                    strWert = Split(strZeile, vbTab)
                    intWert = intWert + 1
                    
                    If intWert >= intAnzahlAnfang And intWert < intAnzahlEnde + intAnzahlAnfang Then
                        lngFirstRow = .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
                            
                        On Error Resume Next
                        .Cells(lngFirstRow, 1) = CDate(strWert(0))
                        .Cells(lngFirstRow, 2) = CDbl(strWert(1))
                        On Error GoTo 0
                    End If
                Loop
            Close #1
    
        End If
    
    Dateityp = Dir
    Loop
End With

Set wksAuslesung = Nothing
End Sub
In dem Makro musst Du in den 3 Zeilen

Const intAnzahlAnfang   As Integer = 8
Const intAnzahlEnde As Integer = 10
Const strPath As String = "H:\Müll\"
die erste einzufügende Zeile (im Beispielmakro die Zeile 8), wieviele Zeilen eingelesen werden sollen (im Beispielmakro 10 Zeilen) und den Pfad, in dem sich die ASC-Dateien befinden, anpassen.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von Umbrella vom 29.09.2022, 10:01 Options

Einfach perfekt !
Das Makro funktioniert einwandfrei und macht keinerlei Probleme.
Vielen Dank. Mit so einer ausführlichen Erklärung und Beschreibung hatte ich eigentlich nicht gerechnet ;)
Auch der Support von deiner HP war sehr hilfreich.

Vielen Dank!

Ähnliche Themen

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026