bin neu hier und da die Herbers Seite beui mir als NR1 der Info Quelle dienst, richte ich meine Frage direct mal an euch:
Ich baue mir eine recht komplexe Tabelle zusammen, Seite 1 (Sheet1) dient dabei als Übersicht. Täglich warden neue Textdateien in einem Ordner abgespeichert (durchnummeriert zB. 1.txt), und zwar 365x. Jede Datei wird via vba als eigenständige Tabelle importiert.
Dazu habe ich folgenden VBA Code:
Sub Alle_Textdateien()
strExt = "*.txt" 'Dateiextension ggf. anpassen
ZuÖffnendeDatei = Application.GetOpenFilename("Textdateien (" & strExt & "), " & strExt, _
Title:="Verzeichnisauswahl, erste Datei auswählen")
If ZuÖffnendeDatei = False Then Exit Sub
'Die ausgewählte Datei ist egal. es wird hier nur das Verzeichnis der Datei ausgewertet
strPath = CurDir & "\"
If strPath = "" Then
Exit Sub
Else
ChDir strPath
strFile = Dir(strPath & strExt) 'hier wird die erste Datei gefunden
Do While Len(strFile) > 0
Workbooks.OpenText Filename:=strPath & strFile, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, _
Tab:=True, Semicolon:=False, Comma:=False, _
Space:=True, Other:=False, trailingMinusNumbers:=True
Sheets(1).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
'...weiter mit Änderungen an der Tabelle
strFile = Dir() ' nächste Datei
Loop
End If
End Sub
Hierzu bereits meine erste Frage. Kann man verhindern, dass mehrere Dateien mehrfach importiert werden (Beispielsweise, wenn ich am Tag 6 nochmal alle importiere,würden alle vorherigen Tage fälschlicherweise mehrfachweise importiert warden.Nun aber zu meinem eigentlichen Problem.
Es soll in jedem Tabellenblatt gechekt warden, wie oft ein bestimmter Benutzername vorkommt. Das Ergebnis soll nach Datum sortiert unter den jeweilen Benutzer eingetragen warden.
Ich habe mich selber rangesetzt und den Code bisher so geschrieben, dass er ein Tag ausliest und die Werte richtig einsetzt. Jetzt will ich aber nicht, den Code 365x mal eintippen,damit die folge Tage daruntern eingetragen warden. Gibt es da möglicherweise eine Art Schleife?
Hier mein bisheriger Code dazu:
Sub Checkforsheets()
Dim myWsh As Worksheet
On Error Resume Next
' Arbeitsblattname anpassen
Set myWsh = Worksheets("1")
If Err.Number 0 Then Exit Sub
On Error GoTo 0
'ab hier neu
i = 0
j = 0
k = 0
l = 0
m = 0
n = 0
o = 0
p = 0
r = 0
For Each Rng In Sheets("1").UsedRange
If Rng.Value = Range("E6").Value Then i = i + 1
Sheets("Sheet1").Range("E7").Value = i
If Rng.Value = Range("F6").Value Then j = j + 1
Sheets("Sheet1").Range("F7").Value = j
If Rng.Value = Range("G6").Value Then k = k + 1
Sheets("Sheet1").Range("G7").Value = k
If Rng.Value = Range("H6").Value Then l = l + 1
Sheets("Sheet1").Range("H7").Value = l
If Rng.Value = Range("I6").Value Then m = m + 1
Sheets("Sheet1").Range("I7").Value = m
If Rng.Value = Range("J6").Value Then n = n + 1
Sheets("Sheet1").Range("J7").Value = n
If Rng.Value = Range("K6").Value Then o = o + 1
Sheets("Sheet1").Range("K7").Value = o
If Rng.Value = Range("L6").Value Then p = p + 1
Sheets("Sheet1").Range("L7").Value = p
If Rng.Value = Range("M6").Value Then q = q + 1
Sheets("Sheet1").Range("M7").Value = q
If Rng.Value = Range("N6").Value Then r = r + 1
Sheets("Sheet1").Range("N7").Value = r
Next Rng
End Sub
Vielen Dank im Voraus