Evitar la repetición de un valor en Excel

Hola buenas tardes,
En un cuadro de Excel, tengo que hacer un cuadrante con valores de 31 días (un mes) por catorce horas de trabajo, en las celdas interiores se irán haciendo reservas de socios del club, como puedo evitar la repetición de número de socio, o que me avise de que un número de socio se repite.
Un saludo y gracias de antemano.

1 respuesta

Respuesta
1
¿Qué es lo que quieres detectar exactamente? ¿Qué un socio tenga ya reserva ese mismo día?... porque supongo que el socio podrá reservar sin problemas en días distintos ¿no?... ¿O eso también hay que detectarlo?
Por otra parte, tu rango de trabajo cómo sería:
a) 31 filas por 14 columnas
b) 14 filas por 31 columnas
Entiendo que te será más cómoda la opción a) ¿Es así como lo tienes pensado?
Hola Angel,
En primer lugar, gracias por responder; sí, el tema está en la opción "a" 31 día por 14 horas y lo que necesito es que durante todo ese mes, ningún socio pueda repetir ni en día ni en hora, es decir en todo el cuadro no puede repetirse ningún número de socio. Es que damos una sesión gratis de una nueva máquina deportiva y el interés radica en que puedan probar el servicio todos los usuarios posibles pero sin que repitan y se aprovechen de su gratuidad.
Gracias de nuevo y un saludo cordial
Te paso esta macro de abajo. En realidad se trata de un control de evento. Tendrás que copiarla dentro de la Hoja en la que tengas las celdas con el cuadrante para las reservas, y cambiar la parte en negrita por la que corresponda al rango exacto de tu cuadrante.
Por otra parte, la parte subrayada es la que determina si quieres que solo te avise pero que te deje o si quieres que realmente no te deje. En el ejemplo, solo te avisa. Si lo quieres más restrictivo solo tienes que cambiar esa línea por la siguiente:
       Eliminar = True
Si prefieres que te mande el ejemplo completo (fichero excel), dame una dirección de correo y te lo envío.
Espero que te valga...
Saludos
Angel
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub Worksheet_Change(ByVal CeldaEditada As Range)
    Dim FilaInicial, FilaFinal, Fila As Integer
    Dim ColumnaInicial, ColumnaFinal, Columna, Celda As String
    FilaInicial = 3
    FilaFinal = 33
    ColumnaInicial = "C"
    ColumnaFinal = "P"
    sw_existe = False
    Eliminar = False
    RangoCeldaEditada = Replace(CeldaEditada.Address, "$", "")
    If CeldaEditada.Rows.Count = 1 And CeldaEditada.Columns.Count = 1 Then
       If CeldaEditada.Value <> "" Then
            For Fila = FilaInicial To FilaFinal
                For Columna = Asc(ColumnaInicial) To Asc(ColumnaFinal)
                    Celda = Chr(Columna) + Trim(Str(Fila))
                    If Not sw_existe _
                    And UCase(Range(Celda).Value) = UCase(CeldaEditada.Value) _
                    And RangoCeldaEditada <> Celda Then
                        MsgBox ("Socio repetido")
                        If Eliminar Then
                            CeldaEditada.Value = ""
                        End If
                        sw_existe = True
                    End If
                Next
            Next
        End If
    End If
End Sub


Muchísimas gracias, sí, por favor mándame un ejemplo, el correo es [email protected].
Gracias de nuevo.
Un saludo muy cordial.
Ya te he enviado el ejemplo a tu cuenta. No olvides finalizar la pregunta cuando termines de revisarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas