Tested and working:
Option Explicit
Sub find_dups()
' Create and set variable for referencing workbook
Dim wb As Workbook
Set wb = ThisWorkbook
' Create and set variable for referencing worksheet
Dim ws As Worksheet
Set ws = wb.Worksheets("Data")
' Find current last rows
' For this example, the data is in column A and the duplicates are in column C
Dim lngLastRowData As Long
lngLastRowData = ws.Range("a1048576").End(xlUp).Row
Dim lngLastRowDups As Long
lngLastRowDups = ws.Range("c1048576").End(xlUp).Row
' Create and set a variable for referencing data range
Dim rngData As Range
Set rngData = ws.Range("a2:a" & lngLastRowData)
Dim lngRowCount As Long
lngRowCount = 0
Dim clData As Variant
Dim lngCount As Long
Dim lngRowIndexData As Long
Dim lngRowIndexDups As Long
lngRowIndexDups = lngLastRowDups + 1
' Variable to store those values we've already checked
Dim strAlreadySearched As String
For Each clData In rngData.Cells
' Reset variables
lngCount = 0
' See if we've already searched this value
If InStr(1, strAlreadySearched, "|" & clData.Value & "|") = 0 Then
' We haven't, so proceed to compare to each row
For lngRowIndexData = 1 To lngLastRowData
' If we have a match, count it
If rngData.Cells(lngRowIndexData, 1).Value = clData.Value Then
lngCount = lngCount + 1
End If
Next lngRowIndexData
' If more than 1 instance
If lngCount > 1 Then
' Dup's were found, fill in values under duplicates
ws.Cells(lngRowIndexDups, 3).Value = clData.Value
ws.Cells(lngRowIndexDups, 4).Value = lngCount
' Drop down a row
lngRowIndexDups = lngRowIndexDups + 1
' Capture this value so we don't search it again
strAlreadySearched = strAlreadySearched & "|" & clData.Value & "|"
End If
End If
Next clData
End Sub