Tornando uma célula obrigatória com base na formatação condicional de outras células, parte 2

0

Estou procurando alcançar o seguinte:

A coluna C foi condicionalmente formatada com base na entrada de dados que, se os dados estiverem fora do intervalo, o plano de fundo da célula ficará vermelho.

Eu estou querendo forçar a entrada de dados na parte inferior da planilha por meio de uma caixa de entrada obrigatória sempre que os dados forem inseridos e a célula for condicionalmente formatada em vermelho devido a dados fora do intervalo.Neste exemplo, o comentário é feito na célula B101 . Como eu alteraria o código abaixo para que, se B101 já contiver texto, o comentário seja feito em B102, e se B102 contiver texto, o comentário será feito em B103 e assim por diante.

Private Sub worksheet_change(byval target as range)
If target.rows.count > 1 Or target.Columns.Count > 1 Then
  Exit Sub
End if

Dim com As String
Dim comm1 As String

Set isect = Application.Intersect(target,Range("C1:C100"))
If isect Is Nothing Then

Else

If target.DisplayFormat.Interior.Color = RGB(255,0,0) Then
   com = "Enter comment at bottom of sheet"

   Do While comm1 = ""
     comm1 = Application.InputBox(prompt:=com, Type:=2)
     On Error GoTo myloop
     If comm1 = False Then
        comm1 = ""
     End If

myloop:
   On Error GoTo -1
   Loop
   Range("B101").Value = comm1

Else
   Range("B101").value = ""
End If
End If
End Sub
    
por Ross Howard 27.09.2018 / 18:32

1 resposta

0

Você pode adicionar um loop Do While:

Dim i As Long
i = 101

Do While Range("B" & i).Value <> ""
    Debug.Print Range("B" & i).Address
    i = i + 1
Loop
' Now that we're out of the loop, the next cell will be empty
Range("B" & i).Value = "Comment here"

Editar: você pode fazer apenas Range("B101").End(xlDown).Offset(1,0).Value = "Comment Here"

    
por 27.09.2018 / 18:57