Foros del Web » Soporte técnico » Ofimática »

Unir dos validaciones de campo para una hoja excel

Estas en el tema de Unir dos validaciones de campo para una hoja excel en el foro de Ofimática en Foros del Web. Buenos días me gustaria saber si alguien puede ayudarme porque no logro dar con la solución a mi problema. El caso es que tengo una ...
  #1 (permalink)  
Antiguo 28/10/2011, 06:53
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Unir dos validaciones de campo para una hoja excel

Buenos días

me gustaria saber si alguien puede ayudarme porque no logro dar con la solución a mi problema.

El caso es que tengo una hoja excel donde uso 2 columnas, (A y B)

En la columna B controlo que no se introduzcan caracteres como * - / etc.. con el siguiente código

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b6:b301]) Is Nothing Then Exit Sub

If Evaluate("SUMPRODUCT( --ISNUMBER( SEARCH({""\"",""/"","":"",""%"",""'"",""~*"",""~?"",""<"","">"",""| "",""""""""}, " & Target.Address & ") ) )") > 0 Then
MsgBox "Se ha introducido un caracter inválido. No se permiten los siguientes caracteres \ / : % ' * ? < > | """
End If
End Sub


Pero ahora estoy interesado en controlar que siempre que en el campo A aparezca el valor "Ventana_Nueva" aparezca otro aviso semejante al que aparece en el campo B (ver código)

¿puede ayudarme alguien?

Muchas gracias
  #2 (permalink)  
Antiguo 29/10/2011, 09:20
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 15 años
Puntos: 39
Respuesta: Unir dos validaciones de campo para una hoja excel

Hace el cambio de estas dos lineas
If Intersect(Target, [a6:b301]) Is Nothing Then Exit Sub 'El rango puedes cambiarlo a tu necesidad

If Evaluate("SUMPRODUCT( --ISNUMBER( SEARCH({"" "",""Nueva_Ventana"",""\"",""/"","":"",""%"",""'"",""~*"",""~?"",""<"","">"",""| "",""""""""}, " & Target.Address & ") ) )") > 0 Then

MsgBox "Se ha introducido en la celda, palabra o caracter," & vbCr & vbCrLf & "NO PERMITIDOS; Nueva_Ventana \ / : % ' ~* ~? < > | " & vbNewLine & "y espacio entre cualquier caracter", vbExclamation, "ERROR"

Si quieres utilisar el espaciador, elimina la parte "" "", y en el mensage la parte & vbCrLf & "y espacio entre cualquier caracter"

Puede que alguien mas conocedor de la materia, pueda hacerlo mejor, pues yo muy poco conozco de programacion

Podiera tambien hacer que luego de presentar el mensage, eliminara el contenido de la celda para volver a escribirle

Última edición por JoaoM; 29/10/2011 a las 10:25
  #3 (permalink)  
Antiguo 31/10/2011, 01:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Unir dos validaciones de campo para una hoja excel

Hola JoaoM

No se si será posible pero me gustaria que las comprobaciones no se hicieran por separado, es decir por un lado para el rango b6:b301 y por otro para el rango a6:a301 pues es posible que en la columna B se llegue a escribir "Ventana_Nueva" y en esa columna no tendria que salir ningún aviso.

Es decir, lo que necesito es (de alguna forma) agregar al codigo actual nuevas líneas para mostrar un mensaje similar al que aparece ene l columna B pero en la Columna A (en este caso cuando se cumpla la condición de que el valor de celda sea "Nueva_Ventana".


Muchas gracias
  #4 (permalink)  
Antiguo 31/10/2011, 03:08
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Unir dos validaciones de campo para una hoja excel

Cita:
Iniciado por coopernico46 Ver Mensaje
Buenos días

me gustaria saber si alguien puede ayudarme porque no logro dar con la solución a mi problema.

El caso es que tengo una hoja excel donde uso 2 columnas, (A y B)

En la columna B controlo que no se introduzcan caracteres como * - / etc.. con el siguiente código

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b6:b301]) Is Nothing Then Exit Sub

If Evaluate("SUMPRODUCT( --ISNUMBER( SEARCH({""\"",""/"","":"",""%"",""'"",""~*"",""~?"",""<"","">"",""| "",""""""""}, " & Target.Address & ") ) )") > 0 Then
MsgBox "Se ha introducido un caracter inválido. No se permiten los siguientes caracteres \ / : % ' * ? < > | """
End If
End Sub


Pero ahora estoy interesado en controlar que siempre que en el campo A aparezca el valor "Ventana_Nueva" aparezca otro aviso semejante al que aparece en el campo B (ver código)

¿puede ayudarme alguien?

Muchas gracias
Ya me facilitaron una solución a mi problema.


Gracias Ioyama.


Os dejo el código por si os puede ser util.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A6:B301]) Is Nothing Then Exit Sub
If Target.Column = 2 Then
If Evaluate("SUMPRODUCT( --ISNUMBER( SEARCH({""\"",""/"","":"",""%"",""'"",""~*"",""~?"",""<"","">"",""| "",""""""""}, " & Target.Address & ") ) )") > 0 Then
MsgBox "Se ha introducido un caracter inválido. No se permiten los siguientes caracteres \ / : % ' * ? < > | """
End If
End If
If Target.Column = 1 Then
If Target = "Nueva_Ventana" Then
MsgBox "Hola, te has equivocado"
End If
End If
End Sub
  #5 (permalink)  
Antiguo 31/10/2011, 03:10
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 12 años, 8 meses
Puntos: 0
SOLUCIONADO - - - Unir dos validaciones de campo para una hoja excel

Cita:
Iniciado por coopernico46 Ver Mensaje
Buenos días

me gustaria saber si alguien puede ayudarme porque no logro dar con la solución a mi problema.

El caso es que tengo una hoja excel donde uso 2 columnas, (A y B)

En la columna B controlo que no se introduzcan caracteres como * - / etc.. con el siguiente código

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b6:b301]) Is Nothing Then Exit Sub

If Evaluate("SUMPRODUCT( --ISNUMBER( SEARCH({""\"",""/"","":"",""%"",""'"",""~*"",""~?"",""<"","">"",""| "",""""""""}, " & Target.Address & ") ) )") > 0 Then
MsgBox "Se ha introducido un caracter inválido. No se permiten los siguientes caracteres \ / : % ' * ? < > | """
End If
End Sub


Pero ahora estoy interesado en controlar que siempre que en el campo A aparezca el valor "Ventana_Nueva" aparezca otro aviso semejante al que aparece en el campo B (ver código)

¿puede ayudarme alguien?

Muchas gracias
  #6 (permalink)  
Antiguo 31/10/2011, 14:05
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 15 años, 4 meses
Puntos: 88
De acuerdo Respuesta: SOLUCIONADO - - - Unir dos validaciones de campo para una hoja excel

Gracias por avisar, coopernico46, y por mostrar la solución.

Etiquetas: excel, vba
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:16.