Evitar Duplicados en un rango

Hola de nuevo, acudo a ti porque tengo un archivo de excel en el que he creado una encuesta (en una hoja), con respuestas múltiples pero solo una respuesta, ahorita bien quisiera saber como puedo hacer para que al haber contestado ya una pregunta, si esta fue equivocada, no puedan regresar a corregirla, sino que pasen a la siguiente que esta abajo.
Tu ayuda sera increíblemente agradecida

1 respuesta

Respuesta
1
Ya veremos como de agradecida es la ayuda):
1º como tienes tus preguntas en fila, en columnas, tienen que escribir en las celdas, son listas para elegir respuesta, son OptionButton, explicame como haces para elegir las respuestas y como están colocadas.
>Un saludo
>Julio
Pues bien el siguiente es más o menos el esquema que tengo
1- Aquí esta contenida la pregunta
____ a) Respuesta 1                               (Respuesta equivocada)
_X__ b) Respuesta 2  
____ c) Respuesta 3
La parte en donde se coloca la POR de respuesta esta ubicada en una celda y la respuesta (texto) en otra celda, una vez la persona a puesto una "X" en cualquier respuesta que haya seleccionado debe pasar inmediatamente a la segunda pregunta, sin poder regresar a la primera pregunta y conponerla si la respuesta era equivocada (como en el ejemplo de arriba)
Por lo que veo la columna A la utilizas para que pongan una POR y la columna B pones las respuestas, veo que solo ocupas 3 filas por pregunta-respuesta así que estarán en grupos de 3 filas, cada vez que marquen una POR en una de las 3 estas deben quedar bloqueadas (las columnas A de esas filas), ¿cuántas preguntas tiene tu formulario para saber hasta donde tenemos que bloquear?.
>Un saludo
>Julio
Tengo 10 preguntas en mi cuestionario
Vale pues te explico el usuario pondrá un por en cualquier celda de la columna A las he repartido en grupos de 3, si posteriormente quieres cambiar el formato o aumentar tus preguntas tendrás que hacer el trabajo tú, es fácil solo ir cambiando el rango de celdas a bloquear o aumentar las lineas de código en función de tus preguntas. Antes de nada las celdas de la columna A tienes que desbloquearlas, para ello selecciona todo el rango de tus contestaciones y pinchas con el derecho eliges la pestaña Proteger y desmarcas la opción de bloqueada, ahora pulsas Alt+F11 te aparece el editor de VBA y en el icono de la hoja de tu formulario que esta en la columna de la izquierda, haces doble click en ella, en la ventana en blanco que te aparece pegas esta macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value <> "" Or Range("A2").Value <> "" Or Range("A3").Value <> "" Then
Range("A1:A3").Select
ActiveSheet.Unprotect
Selection.Locked = True
        Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A4").Value <> "" Or Range("A5").Value <> "" Or Range("A6").Value <> "" Then
Range("A4:A6").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A7").Value <> "" Or Range("A8").Value <> "" Or Range("A9").Value <> "" Then
Range("A7:A9").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A10").Value <> "" Or Range("A11").Value <> "" Or Range("A12").Value <> "" Then
Range("A10:A12").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A13").Value <> "" Or Range("A14").Value <> "" Or Range("A15").Value <> "" Then
Range("A13:A15").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A16").Value <> "" Or Range("A17").Value <> "" Or Range("A18").Value <> "" Then
Range("A16:A18").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A19").Value <> "" Or Range("A20").Value <> "" Or Range("A21").Value <> "" Then
Range("A19:A21").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A22").Value <> "" Or Range("A23").Value <> "" Or Range("A24").Value <> "" Then
Range("A22:A24").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A25").Value <> "" Or Range("A26").Value <> "" Or Range("A27").Value <> "" Then
Range("A25:A27").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
If Range("A28").Value <> "" Or Range("A29").Value <> "" Or Range("A30").Value <> "" Then
Range("A28:A30").Select
ActiveSheet.Unprotect
Selection.Locked = True
    Selection.FormulaHidden = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
Guardas y cierras, y ya lo tienes, cada vez que un usuario escriba algo (X) en la celda el grupo de esa pregunta (3 respuestas=rango de 3 filas) quedará bloqueada sin poder escribir nada en ella.
>Un saludo
>Julio
PD:Si te ha servido puntúa y finaliza la consulta, si necesitas algo más de esta consulta me lo haces saber.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas