Thema Datum  Von Nutzer Rating
Antwort
Rot txt einlesen, daten auswerten, als anderes xls speichern
12.09.2011 10:24:06 Falk
*****
NotSolved
12.09.2011 12:28:23 dekor
***
NotSolved
12.09.2011 12:37:40 falk
NotSolved
12.09.2011 12:43:09 Dekor
NotSolved
12.09.2011 14:14:14 Gast10577
NotSolved
12.09.2011 16:35:59 Falk
NotSolved
13.09.2011 09:57:35 Dekor
NotSolved

Ansicht des Beitrags:
Von:
Falk
Datum:
12.09.2011 10:24:06
Views:
2080
Rating: Antwort:
  Ja
Thema:
txt einlesen, daten auswerten, als anderes xls speichern

Morgen

Ich habe folgendes Anliegen. Eine txt-Datei soll eingelesen werden (zur Einfachheit erst einmal fester Pfad) auf einen extra sheet, dann sollen die Daten kontrolliert werden und auffällige Werte farblich markiert werden (siehe vorhandener Text), danach soll ein speichern des sheets als extra result.xls erfolgen und das zwischendurch erstellte sheet wieder gelöscht werden.

Hab nicht wirklich Ahnung von VBA und hatte bereits Not den Abgleich mit Normwerten hinzubekommen, aber auch damit wurde mir hier bereits geholfen:
Hierzu schon mal mein bis jetzt erstelltes:

Option Explicit

Sub AFREQ()
Dim wrkbook As Workbook
Set wrkbook = ActiveWorkbook
'hier definieren wir den namen der variable für dein workbook (name der .xls datei)

 
Dim max_x As Integer
max_x = wrkbook.Worksheets("eeg").UsedRange.Rows.Count
max_x = max_x
'hier lesen wir die anzahl zeilen aus und erstellen eine variabel für das ergebnis

Dim spalte As String
Dim X As Integer
Dim y As Integer
Dim z As Integer
z = 1

Dim a As Variant
Dim b As String
Dim c As String



Do
    If z = 1 Then
        spalte = "AFREQ_controls"
        z = z + 1
    ElseIf z = 2 Then
        spalte = "AFREQ_cases"
        z = z + 1
    ElseIf z = 3 Then
        spalte = "AFREQ_cc"
        z = z + 1
    End If
    X = 1
    y = 0
    Do
        y = y + 1
    Loop Until wrkbook.Worksheets("eeg").Cells(X, y).Value = spalte Or y = 100
            'es wird in der ersten Zeile nach gewünschtem Spaltennamen gesucht
            
        X = X + 1
            Do
                a = Split(wrkbook.Worksheets("eeg").Cells(X, y).Value, "|") 'split-array, "|" ist der Trenner
                b = a(0)                                                    'b=erster Teil des arrays "a"
                c = a(1)                                                    'c=zweiter Teil des arrays "a"


                If b <= "0.01" Or c >= "0.99" Then
                    wrkbook.Worksheets("eeg").Cells(X, y).Select
                    Selection.Interior.ColorIndex = 34
                    X = X + 1
                    Else
                    X = X + 1
                End If
            Loop Until X = max_x + 1
Loop Until z = 4
 'programm durchläuft hier zelle um zelle bis es am ende ankommt (max_x = max Zeilenanzahl) und überprüft ob der inhalt < 0,01 oder über 0,99 ist ist fals nicht wird die zelle rot markiert...


End Sub

Sub HWE()
Dim wrkbook As Workbook
Set wrkbook = ActiveWorkbook
'hier definieren wir den namen der variable für dein workbook (name der .xls datei)

 
Dim max_x As Integer
max_x = wrkbook.Worksheets("eeg").UsedRange.Rows.Count
max_x = max_x
'hier lesen wir die anzahl zeilen aus und erstellen eine variabel für das ergebnis

Dim spalte As String
Dim X As Integer
Dim y As Integer
Dim z As Integer
z = 1

Do
    If z = 1 Then
        spalte = "HWE_controls"
        z = z + 1
    ElseIf z = 2 Then
        spalte = "HWE_cases"
        z = z + 1
    ElseIf z = 3 Then
        spalte = "HWE_cc"
        z = z + 1
    End If
    X = 1
    y = 0
    Do
        y = y + 1
    Loop Until wrkbook.Worksheets("eeg").Cells(X, y).Value = spalte Or y = 100
            'es wird in der ersten Zeile nach gewünschtem Spaltennamen gesucht
            
        X = X + 1
            Do
                If wrkbook.Worksheets("eeg").Cells(X, y).Value <= 0.05 Then
                    wrkbook.Worksheets("eeg").Cells(X, y).Select
                    Selection.Interior.ColorIndex = 34
                    X = X + 1
                    Else
                    X = X + 1
                End If
            Loop Until X = max_x + 1
Loop Until z = 4
 'programm durchläuft hier zelle um zelle bis es am ende ankommt (max_x = max Zeilenanzahl) und überprüft ob der inhalt < 0,01 oder über 0,99 ist ist fals nicht wird die zelle rot markiert...


End Sub

Sub P()
Dim wrkbook As Workbook
Set wrkbook = ActiveWorkbook
'hier definieren wir den namen der variable für dein workbook (name der .xls datei)

 
Dim max_x As Integer
max_x = wrkbook.Worksheets("eeg").UsedRange.Rows.Count
max_x = max_x
'hier lesen wir die anzahl zeilen aus und erstellen eine variabel für das ergebnis

Dim spalte As String
Dim X As Integer
Dim y As Integer
Dim z As Integer
z = 1

Do
    If z = 1 Then
        spalte = "P_controls"
        z = z + 1
    ElseIf z = 2 Then
        spalte = "P_cases"
        z = z + 1
    ElseIf z = 3 Then
        spalte = "P_cc"
        z = z + 1
    ElseIf z = 4 Then
        spalte = "P_ADD_controls"
        z = z + 1
    ElseIf z = 5 Then
        spalte = "P_ADD_cases"
        z = z + 1
    ElseIf z = 6 Then
        spalte = "P_ADD_cc"
        z = z + 1
    End If
    X = 1
    y = 0
    Do
        y = y + 1
    Loop Until wrkbook.Worksheets("eeg").Cells(X, y).Value = spalte Or y = 100
            'es wird in der ersten Zeile nach gewünschtem Spaltennamen gesucht
            
        X = X + 1
            Do
                If wrkbook.Worksheets("eeg").Cells(X, y).Value <= 0.00001 Then
                    wrkbook.Worksheets("eeg").Cells(X, y).Select
                    Selection.Interior.ColorIndex = 3
                    X = X + 1
                ElseIf wrkbook.Worksheets("eeg").Cells(X, y).Value <= 0.001 Then
                    wrkbook.Worksheets("eeg").Cells(X, y).Select
                    Selection.Interior.ColorIndex = 45
                    X = X + 1
                ElseIf wrkbook.Worksheets("eeg").Cells(X, y).Value <= 0.05 Then
                    wrkbook.Worksheets("eeg").Cells(X, y).Select
                    Selection.Interior.ColorIndex = 6
                    X = X + 1
                Else
                    X = X + 1
                End If
            Loop Until X = max_x + 1
Loop Until z = 7
 'programm durchläuft hier zelle um zelle bis es am ende ankommt (max_x = max Zeilenanzahl) und überprüft ob der inhalt < 0,01 oder über 0,99 ist ist fals nicht wird die zelle rot markiert...


End Sub

 

FAZIT: txt einlesen, temp. extra sheet, auswerten, sheet speichern als result.xls

man könnte sicherlich auch erst die daten einlesen, dann gleich speichern und dann erst die werte kontrollieren... wie das jetzt sinnvoller ist liegt nicht in meinem ermessensbereich :)

 

Vielen Dank schon mal fürs Lesen! :)

Falk


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
Rot txt einlesen, daten auswerten, als anderes xls speichern
12.09.2011 10:24:06 Falk
*****
NotSolved
12.09.2011 12:28:23 dekor
***
NotSolved
12.09.2011 12:37:40 falk
NotSolved
12.09.2011 12:43:09 Dekor
NotSolved
12.09.2011 14:14:14 Gast10577
NotSolved
12.09.2011 16:35:59 Falk
NotSolved
13.09.2011 09:57:35 Dekor
NotSolved