Agradeço aos dois pela ajuda.
Consegui resolver parecido como o gtsalikis explicou no inicio. Apenas retirei o c = do case e funcionou perfeitamente aqui.
ficou assim o código completo
Sub completar_dtefetiva()
Dim a, b, c As Integer, d As String
Worksheets("Mapa 2015").Select
Range("b8").Select
Do While ActiveCell.Value <> ""
a = ActiveCell.Value
Worksheets("Base Orçt 2015").Select
Range("b3").Select
While a <> ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Wend
b = ActiveCell.Value
If a <> b Then
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(0, 3).Select
c = ActiveCell.Value
Select Case c
Case "1"
d = "Jan"
Case "2"
d = "Fev"
Case "3"
d = "Mar"
Case "4"
d = "Abr"
Case "5"
d = "Mai"
Case "6"
d = "Jun"
Case "7"
d = "Jul"
Case "8"
d = "Ago"
Case "9"
d = "Set"
Case "10"
d = "Out"
Case "11"
d = "Nov"
Case "12"
d = "Dez"
Case Else
d = ActiveCell.Value
MsgBox "O valor encontrado é" & " " & d
End Select
Worksheets("Mapa 2015").Select
ActiveCell.Offset(0, 2).Select
ActiveCell.Value = d
ActiveCell.Offset(1, -2).Select
End If
Loop
End Sub
Somente explicando ao alexandre vba, o msgbox mantive dentro do select case / case else por ter de ser exibido se e somente se nenhum case for cumprido. Mas mesmo assim obrigado pela ajuda e dica!
Tenho estudado outras linguagens de programação e com sua explicação consegui entender um pouco mais como usar for each em vba, sabia utilizar somente em Java Script.
Postado : 08/01/2015 1:02 pm