Por favor, note que você terá que atualizar o código abaixo com base no número de linhas que você está usando. no exemplo abaixo, usei 10.
Sub Button1_Click()
Dim numberOfRows As Integer
numberOfRows = 10 ' UPDATE THIS FOR YOUR NUMBER OF ROWS
Dim i As Integer
i = 1
Dim previousValue As String
Dim currentColumn As Integer
currentColumn = 97
For rowNumber = 1 To numberOfRows
Dim currentValueOfA As String
Dim currentValueOfB As String
currentValueOfA = Worksheets("Sheet1").Range("A" & rowNumber).Value
currentValueOfB = Worksheets("Sheet1").Range("B" & rowNumber).Value
If (previousValue = "") Then
previousValue = currentValueOfA
End If
If (previousValue = currentValueOfA) Then
If (Worksheets("Sheet2").Range(Chr$(currentColumn) & "1").Value = "") Then
Worksheets("Sheet2").Range(Chr$(currentColumn) & "1").Value = currentValueOfA
End If
Worksheets("Sheet2").Range(Chr$(currentColumn) & i + 1).Value = currentValueOfB
Else
currentColumn = currentColumn + 1
previousValue = currentValueOfA
i = 1
If (Worksheets("Sheet2").Range(Chr$(currentColumn) & "1").Value = "") Then
Worksheets("Sheet2").Range(Chr$(currentColumn) & "1").Value = currentValueOfA
End If
Worksheets("Sheet2").Range(Chr$(currentColumn) & i + 1).Value = currentValueOfB
End If
i = i + 1
Next
End Sub
Esta é minha planilha1
EéassimqueficanaPlanilha2
Pode haver algumas falhas (dependendo de quantas linhas você tem), mas com base no exemplo que você deu, funciona muito bem.