|  
                                             
	Du weist WertB ja garkeinen Wert zu... außerdem musst du im Elseif Teil eine weitere Variable hochzählen (z.B. i) und dann z.B Worksheets("Statistik").Cells(2+i, 2).Value = Cells(t, 27).Value  schreiben. Ansonsten wird die Ausgabezeile immer wieder überschrieben. 
	Das .Activate kannst du dir sparen und stattdessen Sheets(1).Cells(t,16).value schreiben, das ist wesentlich schneller. Außerdem würde ich den Worksheet nicht per Name (Statistik) sondern per Index ansprechen. Ist ebenfalls deutlich schneller. Merkt man aber alles erst bei größeren Datenmengen. Hier bietet sich außerdem eine With Anweisung an. Spart Tipparbeit und lässt sich schneller ausführen. Am besten ist es allerdings eh mit Arrays zu arbeiten, grade wenn man ganze Tabellenbläter durchsucht. 
Sub TabellenVergleichen()
    
    'dim
        Dim tab1, tab2, res$(), r&, t&
        Dim AnzZeilen&
        Dim WertA#, WertB#
        
    'set
        AnzZeilen = 100
        
        With Sheets(1)
        tab1 = .Range(.Cells(1, 1), .Cells(AnzZeilen, 39)).Value
        End With
        
        ReDim res(AnzZeilen - 3, 5)
        
        WertB = 10
        
    'vergleichen
        For t = 3 To AnzZeilen
            
            WertA = tab1(t, 16)
            
            If WertA < WertB Then
            
                res(r, 2) = tab1(t, 27)
                res(r, 3) = tab1(t, 11)
                res(r, 4) = tab1(t, 39)
                res(r, 5) = tab1(t, 1)
                r = r + 1
                
            End If
          
        Next
    
    'ergebnisse eintragen
        With Worksheets("Statistik")
        .Range(.Cells(2, 2), .Cells(2 + UBound(res), 2 + UBound(res, 2))).Value = res
        End With
        
End Sub
	So könnte es klappen, musst natürlich noch die richtigen Werte zuweisen. Das mit den Array Zuweisungen wirkt vielleicht etwas verwirrend aber eigentlich ist es einfacher, da du weniger schreiben musst und nicht in Gefahr läufst z.B den falschen Sheet anzusprechen. 
     |