Una vez aplicado el macro para que se marque una X con solo dar doble click, ¿Cómo hago que solo se pueda marcar una X por fila?

Ya apliqué el macro para que se marque una X con solo dar doble click:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Target.Value = "X"

End Sub

¿Ahora cómo hago que solo se pueda marcar una X por fila? Quiero que en caso se marque una X en la misma fila, prevalezca la última X y se borre la primera.

Respuesta
1

H0la Luis:

Esto debiera funcionar bien.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   subBuscaEnFila ActiveSheet, Target.row, "X"
   Target.Value = "X"
End Sub
'BUSCAR EN UNA FILA'
'Por GP'
Sub subBuscaEnFila(hojaBusq As Worksheet, _
                    dblFila As Double, _
                    strValor As String)
    Dim resulta As Range
    If Trim(strValor) = "" Then Exit Sub
    Set resulta = hojaBusq.Range(dblFila & ":" & dblFila).Find(strValor, _
                                hojaBusq.Range("A" & dblFila).End(xlToLeft), _
                                LookIn:=xlValues, LookAt:=xlWhole)
    If (Not resulta Is Nothing) Then
        resulta.ClearContents
    End If
End Sub

S@lu2

¡Muchas gracias!

Isaac, muchísimas gracias por tu ayuda. Me faltó indicarte una cosa más, necesito que esa macro se aplique solo en las columnas E y F, pero no en las demás.

Un pequeño gran detalle.

Si es así, con este código debiera bastar.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Column = 5 Then 'Doble click en E'
        Target.Offset(0, 1).ClearContents
        Target.Value = "X"
    ElseIf Target.Column = 6 Then 'Doble click en F'
        Target.Offset(0, -1).ClearContents
        Target.Value = "X"
    End If   
End Sub
La pregunta no admite más respuestas

Más respuestas relacionadas