I found away..
Private Shared Function GetTables(_Database As Database, TableStyleName As String) As List(Of Table)
Dim ReturnValue As New List(Of Table)
Using tran As Transaction = _Database.TransactionManager.StartTransaction()
Dim layoutDict As DBDictionary = DirectCast(tran.GetObject(_Database.LayoutDictionaryId, OpenMode.ForRead), DBDictionary)
For Each entry As DictionaryEntry In layoutDict
Dim oLayout As Layout = DirectCast(tran.GetObject(DirectCast(entry.Value, ObjectId), OpenMode.ForRead), Layout)
Dim oBlockTableRecord As BlockTableRecord = DirectCast(tran.GetObject(oLayout.BlockTableRecordId, OpenMode.ForRead), BlockTableRecord)
For Each oObjectId As ObjectId In oBlockTableRecord
Dim oDBObject As DBObject = DirectCast(tran.GetObject(oObjectId, OpenMode.ForRead), DBObject)
If TypeOf oDBObject Is Table Then
Dim oTable As Table = TryCast(oDBObject, Table)
If oTable IsNot Nothing Then
If oTable.TableStyleName.ToUpper = TableStyleName.ToUpper Then
ReturnValue.Add(oTable)
End If
End If
End If
Next
Next
End Using
Return ReturnValue
End Function