Saltar al contenido

Macro validación listas desplegables


Carlosgumar

Recommended Posts

Hola,

Sucede que necesito crear una macro que me permita validar los datos de una lista desplegable después de haber pegado una información. Me explico, tengo un archivo en el que quiero que las personas puedan ingresar una información (en general, por el volumen de registros las personas copian y pegan la información) y posteriormente esta sea validad por algún tipo de macro.

Dentro del archivo existen variables que tienen información de una lista desplegable y me gustaría que al pegar la información, excel pueda validar que los datos son aquellos que pertenecen al grupo de la lista desplegable que tengo. Si algún dato no corresponde, la idea sería que excel sacara un aviso indicando qué dato es erroneo.

Nota: Cuando pego información sobre alguna lista desplegable el validador se pierde.

Alguno tiene idea de cómo puedo hacer esto?

Enlace a comentario
Compartir con otras webs

Hola, gracias por tu respuesta. La verdad es que estoy buscando algo parecido a este código:

PrivateSub Worksheet_Change(ByVal Target As Range)

' rutina desarrollada por Jorge Dunkelman - JLD Excel Blog

' parte del codigo tomado de la nota de John Walkenbach Excel Developer Tip: Ensuring that Data Validation is Not Deleted

Dim rngValid As Range, cell As Range

Dim Msg AsString

Dim codeValid AsVariant

Set rngValid = Range("rngValidado")

OnErrorResumeNext

IfNot HasValidation(rngValid) Then

Application.Undo

MsgBox "Valor no válido", vbCritical

Application.EnableEvents = False

Target.ClearContents

Application.EnableEvents = True

EndIf

ForEach cell In Target

If Union(cell, rngValid).Address = rngValid.Address Then

codeValid = ActiveCell.Validation.Value

If codeValid = TrueThen

ExitSub

Else

MsgBox "Valor no válido", vbCritical

Application.EnableEvents = False

cell.ClearContents

cell.Activate

Application.EnableEvents = True

EndIf

EndIf

Next cell

EndSub

PrivateFunction HasValidation® AsBoolean

Dim x

OnErrorResumeNext

x = r.Validation.Type

If Err.Number = 0 Then HasValidation = TrueElse HasValidation = False

EndFunction

Tomado de : JLD Excel en Castellano.

La cosa es que al ingresar valores en otras celdas, la macro también me los toma y me dice que el valor no es válido. EN ese sentido, me gustaría saber cómo puedo restringir la operación a solo unas celdas, pues si bien asigno un rango específico, la macro me sigue corriendo en toda la hoja.

Enlace a comentario
Compartir con otras webs

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 93 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • No va a ser necesario distinguir el tipo de proceso entre 1 y 2. Revisa el adjunto a ver si es eso lo que quieres. Function MediaAttention(mImp As Range, _ q25 As Range, q50 As Range, _ Optional q75 As Range, _ Optional q100 As Range) As Double '-- Opción 1 If q75 Is Nothing And q100 Is Nothing Then MediaAttention = q25 / q50 Exit Function End If '-- Opción 2 MediaAttention = ((0.25 * (q25 - q50)) / mImp) + _ ((0.5 * (q50 - q75)) / mImp) + _ ((0.75 * (q75 - q100)) / mImp) + _ (q100 / mImp) End Function   Media Attention Formula 1.2.xlsb
    • Gracias tomarse el tiempo de leer por responder Maestro @Antoni Adjunto el archivo con la idea a la que deseo llegar, sigo atento. Mil gracias por el tiempo y la ayuda brindada   Media Attention Formula 1.2.xlsb
    • He analizado la UDF y entiendo perfectamente lo que hace, lo que no entiendo es lo que pretendes hacer. Mejor sube un ejemplo resuelto de  como debería funcionar la UDF con los nuevos parámetros solicitados. 
    • Gracias, ya lo conseguí solucionar
    • Hola a todos Primero que nada deseo agradecer el tiempo en leer este post, Muchas Gracias. Me acerco a ustedes para pedir su ayuda para lo siguiente: Tengo una UDF, la cual tiene dos escenarios: 1.- Si Tiempo Promedio y Duración del Video son diferentes de 0, hacer el calculo 2.- Si lo anterior es igual a 0, se realiza el otro calculo por cuartiles. El detalle es que son muchas celdas a seleccionar, lo cual creo puede ser engorroso, entonces, pensando en simplificar la función, me pregunte si fuera posible: a.- Colocar 1 al principio de la función y después solo seleccionar 2 celdas correspondientes (Rango continuo o discontinuo) b.- Colocar 2 al principio de la función y después seleccionar las 5 celdas correspondientes (Rango continuo o discontinuo) Espero me puedan ayudar y/o orientar al respecto, quedo atento para cualquier duda, de antemano les agradezco cualquier ayuda brindada. Mil Gracias!! Media Attention Formula 1.1.xlsb  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.