AW: Tabelle auslesen
12.11.2020 20:57:43
Matthias
Moin!
Habe mir die Datei mal angeschaut. Du hast bei machs eine Zeile zuviel rausgelöscht. die Zuweisung an out muss drin bleiben, weil der Aufruf eine Zeile weiter (die Rückgabe in einen Fehler läuft). Damit passt dein Code dann auch. Habe noch zwei Zeilen ergänzt, damit die alten Kriterien rausgelöscht werden. Ansonsten kann es passieren, dass alte WErte noch stehen bleiben aber gar nicht in er Liste waren. Ist im COde markiert und kann bei BEdarf wieder rausgenommen werden.
Option Explicit
Public Function machs(bereich As Range, Optional trenner = vbLf) As String
Dim arr As Variant
Dim out As Variant
Dim objDic As Object
Dim intI As Integer
Dim lngL As Long
arr = bereich
Set objDic = CreateObject("Scripting.Dictionary")
For intI = LBound(arr, 2) To UBound(arr, 2)
For lngL = LBound(arr, 1) To UBound(arr, 1)
objDic(arr(lngL, intI)) = 0
Next
Next
out = objDic.keys
machs = Join(out, trenner)
End Function
Sub IntervallPrüfen()
Dim zeilen As Long
Dim temp As Variant
zeilen = Worksheets("Wartungsaufgaben").Cells(Worksheets("Wartungsaufgaben").Rows.Count, 5). _
End(xlUp).Row
temp = Application.Transpose(Split(machs(Worksheets("Wartungsaufgaben").Range("E10:E" & _
zeilen), "-"), "-"))
'löschen der alten kriterien
zeilen = Worksheets("Kriterien").Cells(Worksheets("Kriterien").Rows.Count, 3).End(xlUp).Row
If zeilen > 1 Then Worksheets("Kriterien").Range("C2:C" & zeilen).ClearContents
'löschen fertig
Worksheets("Kriterien").Range("C2:C" & UBound(temp) + 1) = temp
End Sub
VG