Boa tarde Pessoal,
Estou com um problema na rotina que criei e meio que impaquei na solução.
Eu tenho uma planilha onde os dados da coluna A devem ser inseridos sem pular linha, então para impedir que o usuário tente pular uma linha e digitar o dado abaixo, eu criei a torina abaixo:
Public Oldcell As Range
Private Sub worksheet_change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Set Oldcell = Target
linha = Oldcell.Row
linha2 = Oldcell.Row - 1
Do While Range("A" & linha2) = ""
Range("A" & linha2, "A" & linha).Clear
Range("A" & linha2).Select
linha2 = linha2 - 1
Loop
MsgBox ("Favor não deixar campos vazios na coluna de Datas")
End Sub
O código funciona bem se o usuário pular apenas uma linha, o problema é quando ele pula varias linhas, nete caso, inicia-se um looping quase infinito.
Por isso estou recorrendo ao auxílio de vocês, tem como melhorar este código para que exiba a mensagem uma única vez, limpe o valor digitado e selecione a primeira célula vazia abaixo dos dados da coluna.
Desde já, obrigado pela ajuda.
Att, Carlos
Postado : 01/02/2018 12:37 pm