** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Colorear última celda con resultado = " "
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoColorear última celda con resultado = " "

 Responder Responder
Autor
Mensaje
Peter Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 27/Octubre/2005
Localización: Alemania
Estado: Sin conexión
Puntos: 280
Enlace directo a este mensaje Tema: Colorear última celda con resultado = " "
    Enviado: 20/Noviembre/2008 a las 13:45

Esta parte de un código que uso desde hace tiempo para otros efectos marca de amarillo la úktima celda con información en la columna subtitulada MN en una hoja de cálculo. (aunque lo principal es que se posiciona en esta celda y la convierte de esta manera en la "celda activa")

Esta columna es siempre la Columna K.

...///

Cells.Find(What:="Mn", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _

xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _

.Activate

Range(Selection, Selection.End(xlDown)).Select

Range("k65536").Select

Selection.End(xlUp).Select

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

Range(Selection, Selection.End(xlDown)).Select

Range("k65536").Select

Selection.End(xlUp).Select

'

' Busca la celda activa y luego coloca el cursor debajo de esta, seleccionándola como nueva celda activa

'

While ActiveCell.Value <> ""

ActiveCell.Offset(1, 0).Select

Wend

'

etc... ///

Problema: Deseo adaptar este código para un nuevo trabajo. Como en la columna K de este nuevo trabajo se copia automáticamente valores de otra hoja por medio de una fórmula, sucede que el código ubica y marca de amarillo a la última celda que contiene una fórmula, aún cuando el resultado de esta sea igual a " ", o sea que la celda aparezca "como si estuviera vacía" aunque claro, en este caso en ella hay una fórmula cuyo resultado es " ".

Necesito que en vez de esto, el código ubique y marque de amarillo la última celda de la columna (de arriba hacia abajo) cuyo resultado sea vacío (o sea " ") pero que se cumpla además que además los últimos 9 resultados anteriores a la celda que se marcará de amarillo NO sean = a vacío " ".

¿qué modificaciones habría que hacerle al código?

Peter
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 20/Noviembre/2008 a las 16:43

¿te puede servir algo como?


intCont = 0

While ActiveCell.Value <> "" and intCont < 10

   ActiveCell.Offset(1, 0).Select

   if len(trim(activecell.value)) = 0 then

        intcont = 0

   else

        intcont = intCont +1

    end if

Wend

Arriba
Peter Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 27/Octubre/2005
Localización: Alemania
Estado: Sin conexión
Puntos: 280
Enlace directo a este mensaje Enviado: 20/Noviembre/2008 a las 16:54
Te lo agradezco mucho.
 
Me he pasado toda la tarde intentando diversas maneras sin lograr el resultado deseado.
 
Tu código, como siempre, funciona.
 
 
Peter
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5632
Enlace directo a este mensaje Enviado: 20/Noviembre/2008 a las 17:38
Tienes unos saltos de selección que no entiendo, pero... podrias probar con:
 
 
Dim fila As Integer
  fila = Application.WorksheetFunction.CountIf([K:K], ">""")
  Cells(fila, 11).Select
  With Selection.Interior
  .ColorIndex = 6
  .Pattern = xlSolid
  End With
  ActiveCell.Offset(1, 0).Select
 

 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable