Thema Datum  Von Nutzer Rating
Antwort
27.09.2015 12:33:41 Markus
Solved
Blau CSV einlesen, Datensätze zusammenfassen und in Tabelle einsortieren
30.09.2015 13:53:57 BigBen
NotSolved
30.09.2015 15:02:41 Markus
NotSolved

Ansicht des Beitrags:
Von:
BigBen
Datum:
30.09.2015 13:53:57
Views:
1006
Rating: Antwort:
  Ja
Thema:
CSV einlesen, Datensätze zusammenfassen und in Tabelle einsortieren

Hallo,

mit den folgenden Code werden die importierten csv-Daten aufbereitet:

 

Sub Aufbereitung()
    Dim rngRw As Range
    Dim strTMP As String
    Dim strName As String
    For Each rngRw In ActiveWorkbook.Worksheets("Daten").UsedRange.Rows
        strName = rngRw.Cells(3) & ", " & rngRw.Cells(4)
        Person strName, rngRw.Cells(5), rngRw.Cells(7)
        End If
    Next
End Sub

Sub Person(strName As String, strEigenschaft As String, strWert As String)
    ' Tabelle: Personen
    ' Suche nach strName in Spalte A
    ' Zeile 1: Eigenschaften einer Person
    
    Dim rng As Range
    Dim rngPerson As Range
    Dim rngFind As Range
    Dim rngProp As Range
    With ActiveWorkbook.Worksheets("Personen")
        Set rngFind = .Range("A:A").Find(strName)
        If rngFind Is Nothing Then
            ' Person Nicht vorhanden -> Neu anlegen
            Set rngPerson = .Rows(.UsedRange.Rows.Count + 1)
            rngPerson.Cells(1) = strName
        Else
            Set rngPerson = .Rows(rngFind.Row)
        End If
        
        ' Eigenschaften
        Set rng = .Range("1:1")
        Set rngFind = rng.Find(strEigenschaft)
        If rngFind Is Nothing Then
            ' Eigenschaft nicht vorhanden -> anlegen
            Set rngProp = .Columns(.UsedRange.Columns.Count + 1)
            rngProp.Cells(1) = strEigenschaft
        Else
            Set rngProp = .Columns(rngFind.Column)
        End If
        
        If Not rngProp Is Nothing And Not rngPerson Is Nothing Then
            ' Wert eintragen
            .Cells(rngPerson.Row, rngProp.Column) = strWert
        End If
    End With
End Sub

Damit der Code fehlfrei durchläuft müssen in der Arbeitsmappe zwei Tabellen vorhanden sein:

- Tabelle 1: Daten
Beinhaltet alles csv-Daten (Wichtig ist hierbei, dass der Name in Spalte C und D befindet)

- Tabelle 2: Personen
Es muss hier nur die Zelle A1 mit "Name" vorausgefüllt werden

Der Befehl "Aufbereitung" füllt die Tabelle "Personen".

VG, BigBen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
27.09.2015 12:33:41 Markus
Solved
Blau CSV einlesen, Datensätze zusammenfassen und in Tabelle einsortieren
30.09.2015 13:53:57 BigBen
NotSolved
30.09.2015 15:02:41 Markus
NotSolved