Aclaración sobre Msgbox cuando se cumpla condición

Intento aclarar la pregunta de ayer.

Discúlpame, yo la tengo clara en mi cabeza pero explicarla escrita con precisión resulta complicado.

-Cuando haya 3 ó más “x” contiguas el msgbox debe llamar la atención sobre la celda vacía que está a cada lado de esas 3.

-Cuando haya 2 “x” contiguas, un hueco y una “x” el msgbox debe llamar la atención sobre la celda vacía que queda en medio

En principio no veo problema alguno en que la fila esté llena de “x” pues lo que me interesa básicamente es el aviso sobre las celdas vacías. Si una celda ya tiene “x” no debe generar aviso.

Te he enviado al correo una hoja de Excel donde se ve gráficamente.

1 Respuesta

Respuesta
1

Reviso el archivo y cuando tenga la macro la publico.

¡Gracias! 

Te anexo la macro para 3 "x" consecutivas

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        If Target.Count = 1 Then
            Set b = Range("C1:U1").Find(Target, LookAt:=xlWhole)
            If Not b Is Nothing Then
                u = Cells(Rows.Count, b.Column).End(xlUp).Row + 1
                Cells(u, b.Column) = "x"
                cuenta3 u, b.Column
            End If
        End If
    End If
End Sub
Sub cuenta3(f, c)
'Por.Dante Amor
    If Cells(f, c - 2) = "x" And Cells(f, c - 1) = "x" Then
        existe = True
        a = -3
        p = 1
    ElseIf Cells(f, c - 1) = "x" And Cells(f, c + 1) = "x" Then
        existe = True
        a = -2
        p = 2
    ElseIf Cells(f, c + 1) = "x" And Cells(f, c + 2) = "x" Then
        existe = True
        a = -1
        p = 3
    End If
    If existe Then
        cad = ""
        If Cells(f, c + a) = "" Then
            cad = Cells(1, c + a)
        End If
        If Cells(f, c + p) = "" And Cells(1, c + p) <> "" Then
            If cad <> "" Then
                cad = cad & " y " & Cells(1, c + p)
            Else
                cad = Cells(1, c + p)
            End If
        End If
        If cad <> "" Then
            MsgBox "Atención sobre " & cad
        End If
    End If
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas