Notifications
Clear all

usando o método range

5 Posts
3 Usuários
0 Reactions
953 Visualizações
(@reinaldos)
Posts: 32
Eminent Member
Topic starter
 

Tenho um código assim, que está funcionando como eu quero:

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Range("B" & Target.Row) <> "") And (Range("C" & Target.Row) <> "") And (Range("D" & Target.Row) <> "") _
    And (Range("E" & Target.Row) <> "") And (Range("F" & Target.Row) <> "") Then

*codigo*

O problema é que, pra cada coluna que eu resolvo adicionar, eu preciso colocar mais um "Range(xxx)..."
Eu tentei fazer assim:

If Range("B" & Target.Row, "F" & Target.Row) <> "" Then

Mas ele dá um erro de execução chamado Tipos Incompatíveis. Tem como checar se "de tal célula até tal célula" é diferente de "branco" de uma vez só, ou eu tenho q colocar uma por uma...?

 
Postado : 24/12/2013 9:50 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Minha sugestão é que vc use uma função nativa do Excel:

If Application.WorksheetFunction.CountA(Range(Cells(1, "B"), Cells(1, "F"))) = 5 Then

 
Postado : 24/12/2013 10:51 pm
(@reinaldos)
Posts: 32
Eminent Member
Topic starter
 

gostei da solução, ficou ótimo. só fiz uma adaptação pra contar as vazias, ao invés das não vazias, assim a condição vai ser sempre "= 0", ficou perfeito:

If Application.WorksheetFunction.CountBlank(Range(Cells(Target.Row, "B"), Cells(Target.Row, "J"))) = 0 Then
 
Postado : 25/12/2013 12:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia ReinaldoS

Para manter a organização do fórum, estou movendo este tópico para VBA& Macros.

At.te

Patropi- Moderador

 
Postado : 25/12/2013 6:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 25/12/2013 6:58 am