![Eliminar carácter duplicado en una fila en Excel](https://rvso.com/image/1638107/Eliminar%20car%C3%A1cter%20duplicado%20en%20una%20fila%20en%20Excel.png)
Estoy tratando de que sea posible escribir "x" (sin las comillas) solo una vez en cada fila. Preferiría usar la validación de datos, pero si eso no es posible, también podría usar VBA. He probado varias cosas con CONTAR.SI, por ejemplo, en la validación de datos, pero solo puedo descubrir cómo eliminar duplicados de columnas, no de filas.
¿Alguna idea sobre lo que podría hacer?
Respuesta1
Pruebe la siguiente macro de eventos de la hoja de trabajo.(usa COUNTIF()
):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wf As WorksheetFunction, v As Variant
Dim rng As Range, x As String
Set wf = Application.WorksheetFunction
v = Target.Value
Set rng = Target.EntireRow
x = "x"
If v <> x Then Exit Sub
If wf.CountIf(rng, x) > 1 Then
Application.EnableEvents = False
MsgBox "Too many x"
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Debido a que es código de hoja de trabajo, es muy fácilinstalary automático de usar:
- haga clic derecho en el nombre de la pestaña cerca de la parte inferior de la ventana de Excel
- seleccione Ver código; esto abre una ventana de VBE
- pegue las cosas y cierre la ventana de VBE
Si tiene alguna inquietud, primero pruébelo en una hoja de trabajo de prueba.
Si guarda el libro, la macro se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como .xlsm en lugar de .xlsx.
Aeliminarla macro:
- abra las ventanas de VBE como se muestra arriba
- borrar el código
- cerrar la ventana VBE
Para obtener más información sobre las macros en general, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
y
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Para obtener más información sobre las macros de eventos (código de la hoja de trabajo), consulte:
http://www.mvps.org/dmcritchie/excel/event.htm
¡Las macros deben estar habilitadas para que esto funcione!
Respuesta2
Solo para dar más detalles sobre la respuesta de Gary. No hay forma de hacer esto solo con la validación de datos y necesita VBA con macros habilitadas para que funcione exactamente como se describe.
Si desea evitar VBA, puede comenzar restringiendo cada celda a una lista desplegable de "x" o "". Ahora use el formato condicional para mostrar una advertencia si counta es mayor que 1. Luego, el usuario debe eliminar manualmente las x adicionales hasta que desaparezca el calentamiento.