Daten aus CSV-Datei per Makro kopieren.

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Daten aus CSV-Datei per Makro kopieren.
von: Martin ST
Geschrieben am: 08.03.2005 09:54:24
Hallo zusammen,
ich möchte gerne per Makro Daten aus einer scv-Datei in ein bestimmtes Arbeitsblatt kopieren. wenn ich dies manuell tue, klappt es auch wunderbar.
Wenn ich die Arbeitsschritte aber als Makro aufzeichnen, wird die Formatierung nicht übernommen und mein Excelblatt ist nicht mehr zu gebrauchen.
Wie schaffe ich es, die Daten trotzdem per Makro zu kopieren?
Diesen Arbeitsgang muss ich täglich mehrmals durchführen und es wäre eine super Erleichterung.
Ich hoffe, auf eure Hilfe.
Danke.
Gruß
Martin

Bild

Betrifft: AW: Daten aus CSV-Datei per Makro kopieren.
von: Oberschlumpf
Geschrieben am: 08.03.2005 13:00:18
Hi Martin
Lade mal einen Auszug der CSV-Datei (ein paar Zeilen, damit man mit arbeiten kann) auf den Server und erklär noch mal anhand der Datei, was genau passieren soll.
Ciao
Thorsten
Bild

Betrifft: AW: Daten aus CSV-Datei per Makro kopieren.
von: Martin ST
Geschrieben am: 08.03.2005 13:15:25
Hier ist die Datei.
Die Daten der Zeilen 2- 20 sollen kpl. in ein Excelblatt eingefügt werden, das bereits dementsprechend formatiert ist. Kopiere ich die Zeilen manuell gehts ja, nur per Makro stimmt die Formatieren nicht mehr und es wirden alle Daten aus der CSV in die erste Spalte des Excelblatts kopiert.
Hochgeladene datei war eigentlich als cvs gespeichert. Läßt sich aber scheinbar so nicht hochladen. https://www.herber.de/bbs/user/19350.txt
Gruß
Martin
Bild

Betrifft: AW: Daten aus CSV-Datei per Makro kopieren.
von: Oberschlumpf
Geschrieben am: 08.03.2005 13:32:28
Hi
Vielen Dank schon mal.
Aber was soll ich damit anfangen??
Ich hab die Daten mal 1:1 in eine Excel-Tabelle übertragen
(die 1. Zeile als Überschrift, und darunter die 2. Zeile mit Daten)
Download des Tabellenkonverters                 Formeln in den Zellen als QuickNotiz
Von Oberschlumpf
Bild
A B C D E F G H I J K L M N O P Q
1 ;Umsatz RG Umsatz RG Absatz Absatz AT Anz. Anz.AD gesamt VJ VJ LJ VJ ges KDLJ KDVJ
2 53 5372,5 1 1047,5 10 46000 7500 26 14 7              

Was dabei rauskommt, siehst Du nun ja selber.
Du müsstest schon genau erklären, welcher Wert wo hin soll.
Hilfreich wäre vllt auch eine Bsp-Datei Deiner Excel-Datei, in der ja schon die Anordnung und Formatierung vorhanden ist.
Ciao
Thorsten
Bild

Betrifft: AW: Daten aus CSV-Datei per Makro kopieren.
von: Martin ST
Geschrieben am: 08.03.2005 13:44:37
Hallo Thorsten,
eigentlich ist die ganze Sache ganz einfach.
Mein Ecxelblatt beinhaltet die gleichen Daten wie die csv.Datei. Ist auch von der Anzahl der Spalten usw. gleich. In Excel habe ich die Daten zum Ausdruck vorbereitet, dh. Kopfzeilen usw. Außerdem gibts im Excelblatt noch zusätzliche Zeilen mit Summen usw.
Ich möchte nun einfach aus der csv., die mir von einem externen Programm erstellt wird, bestimmte Zeilen in meine Excelblatt kopieren, damit diese vernünftig gedruckt werden können. Wenn ich das manuell machen, dh. ich öffne beide Dateien, markiere in der csv. die Zeilen, koieren sie und gehen dann ins Excel uns sage "Inhalte einfügen" klappt das auch . Und diesen Vorgang möchte ich per makro laufen lassen.
Gruß
Martin
Bild

Betrifft: AW: Daten aus CSV-Datei per Makro kopieren.
von: Martin ST
Geschrieben am: 08.03.2005 13:27:29
Hier ist die Datei.
Die Daten der Zeilen 2- 20 sollen kpl. in ein Excelblatt eingefügt werden, das bereits dementsprechend formatiert ist. Kopiere ich die Zeilen manuell gehts ja, nur per Makro stimmt die Formatieren nicht mehr und es wirden alle Daten aus der CSV in die erste Spalte des Excelblatts kopiert.
Hochgeladene datei war eigentlich als cvs gespeichert. Läßt sich aber scheinbar so nicht hochladen. https://www.herber.de/bbs/user/19350.txt
Gruß
Martin
Bild

Betrifft: AW: Daten aus CSV-Datei per Makro kopieren.
von: Josef
Geschrieben am: 08.03.2005 19:58:33
Hallo!
Ein kleiner Ansatz:
vor kurzem hier im Forum erhalten.
Option Explicit
Option Base 1


Sub Read_Large_File_2()
    
    Dim FileName   As String
    Dim FileNum    As Integer
    Dim ResultStr  As String
    
    Dim wsSheet    As Worksheet
    Dim strValues() As String
    
    Dim lngRows    As Long
    Dim lngRow     As Long
    Dim intSheet   As Integer
    Dim intCounter As Integer
    
    FileName = Application.GetOpenFilename("Textdateien " & _
    "(*.txt; *.csv),*.txt; *.csv")
    
        If FileName = "" Or FileName = "Falsch" Then Exit Sub
    FileNum = FreeFile()
    
    Open FileName For Input As #FileNum
    Application.ScreenUpdating = False
    Workbooks.Add template:=xlWorksheet
    
    lngRows = ActiveSheet.Rows.Count
    lngRow = 1
    intSheet = 1
    ReDim strValues(lngRows, 1)
    
    Application.StatusBar = "Blatt " & intSheet & " wird eingelesen"
    
    Do While Seek(FileNum) <= LOF(FileNum)
        Line Input #FileNum, ResultStr
        If Left(ResultStr, 1) = "=" Then
            strValues(lngRow, 1) = "'" & ResultStr
        Else
            strValues(lngRow, 1) = ResultStr
        End If
        If lngRow < lngRows Then
            lngRow = lngRow + 1
        Else
            ActiveSheet.Range("A1:A" & lngRows) = strValues
            ActiveWorkbook.Worksheets.Add after:=Worksheets(Worksheets.Count)
    
            ReDim strValues(lngRows, 1)
            lngRow = 1
            intSheet = intSheet + 1
            Application.StatusBar = "Blatt " & intSheet & " wird eingelesen"
        End If
    Loop
    Close
    ActiveSheet.Range("A1:A" & lngRows) = strValues
    
    If MsgBox("Sollen die eingelesenen Daten auf Spalten verteilt werden?", _
        vbYesNo, "Text in Spalten") = vbNo Then
        Application.ScreenUpdating = True
        Application.StatusBar = "Fertig"
        Exit Sub
    End If
    
    intSheet = 0
    For Each wsSheet In ActiveWorkbook.Worksheets
        intSheet = intSheet + 1
        Application.StatusBar = "Daten von Blatt " & intSheet _
        & " werden bearbeitet"
        With wsSheet
            .Range("A:A").TextToColumns Destination:=.Range("A1"), _
            DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, _
            Tab:=False, _
            Semicolon:=True, _
            Comma:=False, _
            Space:=False, _
            Other:=False
        End With
    Next wsSheet
    Application.ScreenUpdating = True
    Application.StatusBar = "Fertig"
End Sub

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Daten aus CSV-Datei per Makro kopieren."