Formato condicional con más de 3 condiciones

Hola,
el día 18 el experto jrgces me pasó "simular_formato_condicional_con_mas_de_3_condiciones.xls".
Lo estoy intentando utilizar, pero no me funciona si pego la función en mi libro. Le pongo la celda en la que tengo la validación y me da un error 424 Se requiere un objeto. No sé qué diferencia hay con la del ejemplo... Yo lo veo todo igual, pero me sale ese error y no hay manera.
Gracias de antemano por la ayuda.
Un saludo,
Begoña.

1 Respuesta

Respuesta
1
En tu libro tienes que respetar estos puntos:
1-Que la hoja se llame Hoja1 y la celda validada sea A1.
Si necesitas cambiar esto, tendrás que modificar esas referencias en la rutina que tendrás en el Editor, en la línea:
If Intersect(Target, ....aquí tu hoja y celda
Además verificá que tu celda validada tenga opción Lista con rango : $F$3:$F$7
Gracias. El problema que tenía era el nombre de la hoja, que tenía tildes y espacios en blanco y no lo reconocía. Para solucionarlo simplemente puse el nombre entre comillas simples.
Pero ahora tengo otro problema; cuando elimino una fila (botón derecho sobre el número de la fila -> Eliminar) me da error 1004 en tiempo de ejecución en esa macro porque al haber borrado la celda, no la reconoce. Eso también pasa si borro la fila 1 en el ejemplo que me pasaron. No sé cómo solucionarlo, he pensado en poner una condición (si la celda existe seguir, si no salir de la macro) Pero no sé cómo escribirla o si esa sería una solución.
Gracias de antemano.
Un saludo,
Begoña.
Falta una linea de control de error. El orden de instrucciones es este:
On error resume next
Worksheet.Function.Index......
Sdos!
Gracias! Espero que eso funcione, porque me pasa en varias macros y si esa simple línea es la solución sería genial! Es que estoy empezando con el Excel y no sé casi nada...
El lunes lo probaré y contesto.
Un saludo,
Begoña.
Hola,
Gracias por la idea, me basé en ella y al final puse esto:
On Error GoTo Fin:
Justo antes de las líneas de código que hacen cosas, y la etiqueta Fin justo al final, para que si hay error no haga nada. Así:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, ['Gestión de Riesgos'!H:H]) Is Nothing Then Exit Sub
Set Target = Target.Cells(1, 1)
Application.EnableEvents = False
On Error GoTo Fin:
If Target.Value = "" Then
  'ActiveCell.Cells.EntireRow.Delete
  Target.Interior.ColorIndex = 0
Else
  MsgBox (Target.Value)
  WorksheetFunction.Index(Range(Target.Validation.Formula1), WorksheetFunction.Match(Target.Value, Range(Target.Validation.Formula1), 0), 1).Copy
Target.PasteSpecial Paste:=xlPasteFormats
End If
Fin:
  Application.EnableEvents = True
  Application.CutCopyMode = False
End Sub

Un saludo,
Begoña.
Bien, entonces no olvides marcar la opción Finalizar para que puedas seguir ingresando nuevas consultas. (reglas del foro ;)
Sdos
Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas