Thema Datum  Von Nutzer Rating
Antwort
17.10.2011 14:21:18 Chris
NotSolved
17.10.2011 16:24:51 Till
NotSolved
17.10.2011 19:06:03 Chris
NotSolved
17.10.2011 19:38:40 Till
NotSolved
17.10.2011 20:38:34 Chris
NotSolved
18.10.2011 01:01:30 Till
NotSolved
18.10.2011 01:02:11 Till
NotSolved
18.10.2011 07:36:44 Chris
NotSolved
Rot Auslesen Textdatei
18.10.2011 20:05:15 Till
NotSolved
19.10.2011 08:16:21 Chris
NotSolved
19.10.2011 09:45:44 Till
NotSolved

Ansicht des Beitrags:
Von:
Till
Datum:
18.10.2011 20:05:15
Views:
1235
Rating: Antwort:
  Ja
Thema:
Auslesen Textdatei

So sollte das gehen, musst nur den Pfad zur Textdate noch anpassen, oder sie in den gleichen Ordner wie die Excel Mappe packen und "Test.txt" nennen...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Option Explicit
 
Function ZellenFärben()
Dim rng As Range, AV, R&, C&, SerienNummer, SachNummer, Found()
Dim Path$, S1$, S2$
     
    Path = ThisWorkbook.Path & "\Test.txt" 'Pfad zur Textdatei...
    Set rng = ActiveSheet.UsedRange 'Bereich in dem Zellen gesucht und gefärbt werden sollen
    If rng.Columns.Count < 4 Then Exit Function
    With rng
        .Interior.ColorIndex = xlNone
        AV = .Value
    End With
     
    For R = 1 To UBound(AV)
        S1 = AV(R, 2)
        S2 = AV(R, 4)
        If Not S1 = "" And Not S2 = "" Then
            Select Case FindSN(S1, S2, Path) 'Suche in der Spalte rechts neben der gefundenen Nummer nach FAIL bzw. PASS
            Case 2
                rng(R, 4).Interior.ColorIndex = 3
            Case 3
                rng(R, 4).Interior.ColorIndex = 4
            End Select
        End If
    Next
      
End Function
  
Private Function FindSN(SachNummer, SerienNummer, Path$) As Integer
Dim List$(), FileName$, I&, TS$
      
    If Not OpenTxt(List, Path) Then Exit Function
    For I = 0 To UBound(List)
        TS = List(I)
        If InStr(1, TS, SachNummer) Then
            FindSN = 1
            If InStr(1, TS, SerienNummer) Then
                FindSN = 2
                If InStr(1, TS, "PASS") Then
                    FindSN = 3
                    Exit For
                End If
            End If
        End If
    Next
  
End Function
  
'open file
    Private Function OpenTxt(FileData$(), ByVal FileName$) As Boolean
    On Error GoTo BadData
    Dim FileNum%, Fields$, I&
              
        'create file
            FileNum = FreeFile
            ReDim FileData(0 To 0)
              
        'open file for input
            Open FileName For Input As FileNum
                Do While Not EOF(FileNum)
                  
                  Line Input #FileNum, Fields
                    
                  ReDim Preserve FileData(0 To I)
                  FileData(I) = Fields
                  I = I + 1
                    
                Loop
            Close
              
            FileName = 0
            Fields = 0
            I = 0
              
            OpenTxt = True
              
    Exit Function
BadData:
    End Function

Code in ein VBA Standardmodul packen und ausführen...


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
17.10.2011 14:21:18 Chris
NotSolved
17.10.2011 16:24:51 Till
NotSolved
17.10.2011 19:06:03 Chris
NotSolved
17.10.2011 19:38:40 Till
NotSolved
17.10.2011 20:38:34 Chris
NotSolved
18.10.2011 01:01:30 Till
NotSolved
18.10.2011 01:02:11 Till
NotSolved
18.10.2011 07:36:44 Chris
NotSolved
Rot Auslesen Textdatei
18.10.2011 20:05:15 Till
NotSolved
19.10.2011 08:16:21 Chris
NotSolved
19.10.2011 09:45:44 Till
NotSolved