Boa tarde! Eu consegui fazer a correção nos dados de outras duas formas diferentes do que a demonstrada pelo professor:
**A primeira forma foi utilizando o VBA para automatizar o autopreenchimento das fórmulas Esquerda e direita da linha 2 até a última linha da tabela (criei variáveis para a última linha da tabela, assim o código funcionará ainda que o número de entradas aumente). O código ainda faz a cópia dos valores resultantes de cada uma das fórmulas para as colunas de Produto (coluna B) e Vendedor (coluna H).
Esse foi o código que eu usei: **
Sub Formatação_1()
'utilizando o comando crtl+seta pra cima e crt+seta pra baixo, cria uma varíavel para descobrir o número da última linha da tabela.
Range("I2").Select
linha_inicial = ActiveCell.Row
Range("A1048576").Select
Selection.End(xlUp).Select
linha_final = ActiveCell.Row
Application.CutCopyMode = False
'fazer a fórmula 'direita' na célula i2, criar uma variável para o intervalo da coluna i até a última linha da tabela (com base na variável criada anteriormente)
Range("I2").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-7],5)"
Range("I2").Select
Rg = "I" & linha_inicial & ":I" & linha_final
Selection.AutoFill Destination:=Range(Rg)
'criar uma variável para o intervalo da coluna B até a última linha da tabela (com base na variável criada anteriormente), selecionar o intervalo e apagar o conteúdo
Range(Rg).Select
Selection.Copy
Rg_2 = "J" & linha_inicial & ":J" & linha_final
Range(Rg_2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rg_3 = "B" & linha_inicial & ":B" & linha_final
Range(Rg_3).Select
Selection.ClearContents
Range(Rg_2).Select
Selection.Copy
Range(Rg_3).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(Rg_2).Select
Selection.ClearContents
Range("I2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],5)"
Range("I2").Select
Rg = "I" & linha_inicial & ":I" & linha_final
Selection.AutoFill Destination:=Range(Rg)
Range(Rg).Select
Selection.Copy
Rg_2 = "J" & linha_inicial & ":J" & linha_final
Range(Rg_2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rg_4 = "H" & linha_inicial & ":H" & linha_final
Range(Rg_4).Select
Selection.ClearContents
Range(Rg_2).Select
Selection.Copy
Range(Rg_4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(Rg_2).Select
Selection.ClearContents
Range(Rg).Select
Selection.ClearContents
End sub
**A segunda forma que fiz foi fazer a automação do recurso localizar e substituir para que na coluna B (produtos) o caractere "$" seja substituído por "" (espaço em branco) e para que na coluna H (vendedor) o caractere "#" seja substituído por "" (espaço em branco).
Considero essa a melhor opção para se fazer a correção dos dados, pois, a correção somente será feita nas células que contenham caracteres estranhos. ** o código que utilizei foi:
Sub Formatação_2()
Range("I2").Select
linha_inicial = ActiveCell.Row
Range("A1048576").Select
Selection.End(xlUp).Select
linha_final = ActiveCell.Row
Application.CutCopyMode = False
Rg_2 = "B" & linha_inicial & ":B" & linha_final
Range(Rg_2).Select
Selection.Replace What:="$", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Rg_3 = "H" & linha_inicial & ":H" & linha_final
Range(Rg_3).Select
Selection.Replace What:="#", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub
**Com relação à forma utilizada pelo professor na aula, fiz só uma seguinte modificação, para inserir no próprio código VBA a aplicação da fórmula contarvalores, meu código ficou assim: **
Sub Formatação_3()
Range("J1").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-8])"
For contador = 2 To Range("J1")
Range("B" & contador) = Right(Range("B" & contador), 5)
Range("H" & contador) = Left(Range("H" & contador), 5)
Next
End Sub