UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

carlosgumar


Sucede que necesito crear una macro que me permita validar los datos después de haber pegado una información en una celda que tenía como condicional un alista desplegable. 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 celdas 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 celda que tenga  un condicional este se pierde. 


He estado trabajando con este código,  pero siempre me aparece dato no valido:



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(r) AsBoolean
Dim x

OnErrorResumeNext
x = r.Validation.Type
If Err.Number = 0 Then HasValidation = TrueElse HasValidation = False
EndFunction
Tomado de : JLD Excel en Castellano. 



Alguno tiene  una idea de que pueda estar pasando o cómo puedo arregarlo. 


De antemano gracias

hugotron


Qué tal Carlos.

Para todos funciona mejor que subas un archivo de ejemplo para saber con qué estás trabajando y responder lo que preguntas de forma más certera.

Por cierto, los códigos del maestrazo Dunkelman suelen ser más efectivos cuando ya se tienen ciertas nociones en VBA. Sólo como consejo. Quedo al pendiente de tu archivo de muestra.

Lo que requieres no es complejo, una macro por evento al cambio de la celda que quieres validar y una búsqueda por tus datos creo que bastan.

Saludos.

Igtelo


Bravoooooooooooo!!!

Que gusto y alegría me acabo de llevar!!!!

Hugo: Bienvenido!!! Casi 3 años sin saber de ti...


Un fuerte abrazo y el mejor de los deseos para ti y la familia.
Nacho

hugotron


Qué tal Nacho.

Pues quiero desempolvarme un poco, y además apenas adquirí un equipo para conectarme desde casa. En el trabajo ya no tengo tiempo y por eso estuve un poco alejado del foro.

Esperemos que gradualmente me vaya integrando de nuevo.

Saludos e igualmente para ti y tu familia.

Un abrazo.

adolfo castro


Hola Hugo, un placer verte de nuevo por aca, me alegra mucho, un fuerte abrazo.

wibly


Hola Hugo!!!,

Celebro que puedas volver a participar en el foro!

 Un abrazo!

hugotron


Camaradas, ustedes si que saben hacer sentir a la gente especial.

Un abrazo a todos ustedes.

rosendo2


Saludos Hugo un gran gusto saber de ti nuevamente.

Rosendo2

Igtelo


Tema abandonado, se cierra.

Ignacio Téllez

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.