30.11.2016, 14:52
Hallo
Es ist wieder mal soweit dass ich mich an ein Makro wage.
Leider läuft mein Versuch nicht ganz durch.
Es wäre toll wenn jemand mir einen kleinen Schubs geben könnte.
Ich habe folgendes Problem.
Periodisch muss in einer Log-Datei nach bestimmte Werte analisiert werden.
In der Log-Datei (.txt) ist allerdings zusätzlich eine Menge Datenmüll.
Ich möchte diesen Datenmüll löschen, damit die Nutzdaten sichtbar werden.
Ueber die Suchfunktion habe ich eine Menge ähnlicher Fälle gefunden.
So habe ich mich an die Arbeit gemacht und ein anderes (eigenes) Makro etwas umgeändert.
Einen Teil aus dem I-net geklaut und eingefügt.
Leider das Makro nicht durch.
Die Log-Datei soll in Excel importiert werden.
Gerne alles in eine Spalte A.
Dann sollen Zeilen welche mit z.b.: Dialing* beginnen oder in welchen irgendwo CALLED vorkommt behalten werden.
(Diesen Teil des Markros habe ich geklaut oder besser gesagt: übernommen und angepasst.)
Es wäre von Vorteil wenn der Name der Log_Datei - den Namen der Ausgagngsdatei (txt-Format) schon vorgeben würde.
( dies müsste bereits in dem Teil des eigenen Makros enthalten sein )
Das Makro bleibt stehen bei:
Dim SheetName = "Tabelle1" Es ist eigentlich égal wie die Seite heist.
Dim SearchColumn = "A" Das hiess in dem geklautenen Makro: SUchSpalte
Dim Searchtext =
Die Zeilen sind auch rot markiert und es erscheint ein "Compile error" - EXPECTED: END OF STATEMENT
Ob der/die/das Makro bis ansonsten zum Schluss durchlaufen würde hoffe ich.
Es wäre toll wenn jemand mir sagen könnte, wo der Hund begraben liegt:
Besten Dank.
Freundliche Grüsse
Es ist wieder mal soweit dass ich mich an ein Makro wage.
Leider läuft mein Versuch nicht ganz durch.
Es wäre toll wenn jemand mir einen kleinen Schubs geben könnte.
Ich habe folgendes Problem.
Periodisch muss in einer Log-Datei nach bestimmte Werte analisiert werden.
In der Log-Datei (.txt) ist allerdings zusätzlich eine Menge Datenmüll.
Ich möchte diesen Datenmüll löschen, damit die Nutzdaten sichtbar werden.
Ueber die Suchfunktion habe ich eine Menge ähnlicher Fälle gefunden.
So habe ich mich an die Arbeit gemacht und ein anderes (eigenes) Makro etwas umgeändert.
Einen Teil aus dem I-net geklaut und eingefügt.
Leider das Makro nicht durch.
Die Log-Datei soll in Excel importiert werden.
Gerne alles in eine Spalte A.
Dann sollen Zeilen welche mit z.b.: Dialing* beginnen oder in welchen irgendwo CALLED vorkommt behalten werden.
(Diesen Teil des Markros habe ich geklaut oder besser gesagt: übernommen und angepasst.)
Es wäre von Vorteil wenn der Name der Log_Datei - den Namen der Ausgagngsdatei (txt-Format) schon vorgeben würde.
( dies müsste bereits in dem Teil des eigenen Makros enthalten sein )
Das Makro bleibt stehen bei:
Dim SheetName = "Tabelle1" Es ist eigentlich égal wie die Seite heist.
Dim SearchColumn = "A" Das hiess in dem geklautenen Makro: SUchSpalte
Dim Searchtext =
Die Zeilen sind auch rot markiert und es erscheint ein "Compile error" - EXPECTED: END OF STATEMENT
Ob der/die/das Makro bis ansonsten zum Schluss durchlaufen würde hoffe ich.
Es wäre toll wenn jemand mir sagen könnte, wo der Hund begraben liegt:
Besten Dank.
Freundliche Grüsse
Code:
Sub delete()
' Created 30.11.2016.
'
' Keyboard Shortcut: Ctrl+f
'
Dim varName As Variant
Dim strName As String
Dim Neuer_Dateiname As String
Dim strTabname As String
Dim loletzte As Long
Dim strPfad As String
'Pfad festlegen
strPfad = "C:\delete\"
'Laufwerk und Pfad zum Öffnen vorgeben
ChDrive "C"
ChDir strPfad
'Datei-Öffnen-Dialog aufrufen
varName = Application.GetOpenFilename("Text-Dateien (*.txt),*.txt")
'Letztes \ ermitteln um Pfad und Dateiname zu trennen
strName = Right$(varName, Len(varName) - InStrRev(varName, "\"))
'Letzten . ermitteln um Dateiname und Erweiterung zu trennen
strName = Left(strName, InStrRev(strName, ".") - 1)
'import aus txt datei
Workbooks.OpenText Filename:=varName, Origin:=xlMSDOS, StartRow _
:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Columns("A:A").ColumnWidth = 67.29
'letzte Zeile in Spalte A im aktiven Blatt ermitteln
loletzte = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Name des aktiven Arbeitsblattes in Variable schreiben
strTabname = ActiveWorkbook.ActiveSheet.Name
Dim SheetName = "Tabelle1"
Dim SearchColumn = "A"
Dim Searchtext = "*NETM*, Dialing*, REDIRECTED*, CALLING*, *CALLED*"
Sub DeleteLine()
Dim Text As Variant, Found As Boolean, i As Long, EndLine As Long, s As Integer
Sheets(SheetNamen).Activate
EndLine = Cells(Rows.Count, SuchSpalte).End(xlUp).Row
Text = Split(Searchtext, ",")
Application.ScreenUpdating = False
For i = 1 To EndLine
If i > EndLine Then Exit For
Found = False
For s = 0 To UBound(Text)
If Cells(i, SearchColumn) Like Trim(Text(s)) Then Found = True: Exit For
Next
If Found = False Then Rows(i).Delete: i = i - 1: EndLine = EndLine - 1
Next
Application.ScreenUpdating = True
'Speichern-unter Dialog aufrufen
Neuer_Dateiname = Application.GetSaveAsFilename(InitialFileName:=strPfad & strName & ".txt", fileFilter:="Excel-Arbeitsmappe, *.txt")
'falls Abbrechen gedrückt wird, Makro verlassen
If Neuer_Dateiname = "Falsch" Then
'Meldung Makroabbruch
MsgBox "Workbook not saved!", 48, "Abort by user"
Exit Sub
Else
'aktive Arbeitsmappe speichern
ActiveWorkbook.SaveAs Filename:=Neuer_Dateiname, FileFormat:=51
End If
End Sub