Microsoft Excel

Herbers Excel/VBA-Archiv

Semikolion in TXT Zeile | Herbers Excel-Forum


Betrifft: Semikolion in TXT Zeile von: Andre´
Geschrieben am: 22.10.2008 15:26:51

Hallo alle zusammen,

Ich möchte in einer TXT Datei in jeder Zeile nach der Anzahl der Semikolon’s suchen.
Wenn nur zwei Semikolons vorhanden sind, dann soll in dieser Zeile ein Semikolon und Fertig angehängt werden.

Vorher:
03.07.2008 15:01:25;Test1;S1_5
Danach:
03.07.2008 15:01:25;Test1;S1_5;Fertig

Sind mehr als zwei Semikolon in einer Zeile vorhanden, dann soll nichts geschehen.

Hier als Bsp. ein Auszug aus der TXT Datei:

03.07.2008 15:01:25;Test1;S1_5
04.07.2008 15:03:20;Test6666666666666666666;S1_59999999999;Fertig
05.07.2008 15:15:30;Test6666666666666666666999999999;S1_59

wobei in der Zeile 1 und 3 das Semikolon und Fertig angehängt werden muss.

Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus!

MFG Andre

  

Betrifft: AW: Semikolion in TXT Zeile von: David
Geschrieben am: 22.10.2008 15:34:17

Hallo Andre,

soll das Ergebnis in einer neuen Datei (=Formel) oder in der selben Datei (nur per VBA) erscheinen?

Gruß
David


  

Betrifft: AW: Semikolion in TXT Zeile von: David
Geschrieben am: 22.10.2008 15:53:19

Hallo Andre,

hab mal nebenbei beide Varianten gebastelt.

Formel:

=WENN(NICHT(ISTFEHLER(SUCHEN(";";A1;SUCHEN(";";A1;SUCHEN(";";A1)+1)+1)));A1;A1&";Fertig")



VBA:

Option Explicit

Sub test()

Dim i, j As Integer
Dim l As String
Dim Scount As Byte

For i = 1 To Range("A65000").End(xlUp).Row
    Scount = 0
    For j = 1 To Len(Cells(i, 1))
        l = Mid$(Cells(i, 1), j, 1)
        If l = ";" Then Scount = Scount + 1
    Next
    If Scount <= 2 Then Cells(i, 1) = Cells(i, 1) & ";Fertig"
Next

End Sub



Ich bin davon ausgegangen, dass die Werte in Spalte A und nur dort stehen.

Rückmeldung wäre nett.

Gruß
David


  

Betrifft: AW: Semikolion in TXT Zeile von: Andre´
Geschrieben am: 22.10.2008 16:42:19

Hallo David,
erstmals Danke für die Meldung.

Dies soll nicht einer einer Excel Datei geschehen sondern in einer TXT Datei.

MFG Andre


  

Betrifft: AW: Semikolion in TXT Zeile von: Andre´
Geschrieben am: 22.10.2008 16:50:14

Hallo alle zusammen,

hier die Bsp. Dateien

TXT Datei vorher:
https://www.herber.de/bbs/user/56199.txt

TXT Datei danach:
https://www.herber.de/bbs/user/56200.txt

MFG Andre


  

Betrifft: AW: Semikolion in TXT Zeile von: Rudi Maintaire
Geschrieben am: 22.10.2008 16:58:39

Hallo,

Sub tt()
  ReadCSV2 "c:\test\test.txt"
End Sub


Sub ReadCSV2(ByVal strDateiName As String)
   Dim strTxt As String, myArr, lngL As Long, wks As Worksheet
   lngL = 1
   Application.ScreenUpdating = False
   Open strDateiName For Input As #1
   Set wks = Workbooks.Add(1).Sheets(1)
   Do Until EOF(1)
      Line Input #1, strTxt
      myArr = Split(strTxt, ";")
      With wks
         .Range(.Cells(lngL, 1), .Cells(lngL, UBound(myArr) + 1)) = myArr
         If UBound(myArr) = 2 Then
          .Cells(lngL, 4) = "Fertig"
         ElseIf myArr(3) = "" Then
         .Cells(lngL, 4) = "Fertig"
         End If
      End With
      lngL = lngL + 1
   Loop
   Close #1
   Open strDateiName For Output As #1
   
   For lngL = 1 To lngL - 1
    With wks
      myArr = .Range(.Cells(lngL, 1), .Cells(lngL, 4))
      strTxt = Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(myArr)), ";")
      Print #1, strTxt
    End With
  Next
  Close #1
  wks.Parent.Close False
  Application.ScreenUpdating = True
End Sub


Gruß
Rudi


  

Betrifft: Funktioniert super :-))) DANKE !!! von: Andre´
Geschrieben am: 22.10.2008 17:25:57