You are on page 1of 121

Celda parpadeante en Microsoft Excel 2007

La idea de esta entrada es hacer que un rango de celdas de Excel parpadeen, o cambien de color, o aparezcan y
desaparezcan los bordes, es decir alternar entre el formato de celda origina y otro.

Determinar el formato de celda alternativo


1. Seleccionamos el rango de celdas (que ya tienen un formato) a la que queremos alternar el
formato.
2. Luego Formato Condicional
3. Despus Nueva Regla.

(NOTA: Si pulsas sobre la imagen se puede ampliar)

4. En la pantalla que se nos abre seleccionamos:

> Utilice una frmula que determine las celdas para aplicar formato.

5. Escribimos la siguiente frmula

=RESIDUO(SEGUNDO(AHORA());2)=0

*NOTA: Cmo indica Cristian Fuentealba en los comentarios, si os da un error en el paso 7 probad a usar RESTO
en lugar de RESIDUO

6. Luego pulsamos el botn Formato.


7. Ahora en la pantalla que nos sale escogemos el efecto con el que queramos alternar: una fuente, negrita...
nosotros escogeremos un fondo rojo.
8. Aceptamos todas las ventanas.

Escribimos la macro
1. Abrimos MVB pulsando simultneamente las teclas [ALT] y [F11]
2. Insertamos un mdulo

3. Copiamos y pegamos el siguiente cdigo:

Public tiempo As Date


Sub Inicio()

tiempo = Now + TimeSerial(0, 0, 1)

Worksheets(1).Calculate

Application.OnTime tiempo, "Inicio"

End Sub

Sub Fin(): On Error Resume Next

Application.OnTime tiempo, "Inicio", Schedule:=False

End Sub

4. Para ejecutar escogemos Inicio (1) y le damos al Play (2)


5. Si cambiamos a la hoja ya podremos ver nuestra celda parpadeando.

Reinterpretacin para Office 2007 de 5aprendices.com

Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con FacebookCompartir en Pinterest

Etiquetas: MS Office

Vallekas Vallecas, 28031 Madrid, Espaa

13 comentarios:
1.

Ales8 de agosto de 2013, 0:14

No me funciona, cuando hago click en "Aceptar" del cuadro de dialogo "Nueva regla de formato" me sale error en la
formula, y me da tres opciones:
*para obtener mas informacin acerca de como reparar errores frecuentes en formulas haga clic en el botn Ayuda.
*Para obtener ayuda al crear una funcin, haga clic en el Asistente para funciones (ficha formulas, grupo Biblioteca de
funciones).
*Si no desea introducir una formula, evite usar el signo igual (=), el signo menos (-) con una comilla sencilla ()

Responder

Respuestas

1.

Sr. Furniman11 de agosto de 2013, 22:25


Estimado Ales, posiblemente la frmula del paso 5 tenga algn error. Asegrate de que est bien escrita. Si
no, puedes subir una captura del error a una pgina para compartir imgenes como http://imageshack.us/ y
pegar aqu el enlace para darle un vistazo.

De todas formas, te comunico que me voy de vacaciones y voy a estar ausente 20 das, quiz algn otro
lector te pueda echar una mano...

Suerte!

Responder

2.

Ales8 de agosto de 2013, 0:15

Supongo que se debe configurar o habilitar macros o algo asi... por favor ayudaaaaaa

Responder

3.

Ales8 de agosto de 2013, 0:39

En el paso 7, una vez que realizo el cambio de formato, luego no me permite aceptar el cuadro de dialogo "nueva regla
de formato".

su explicacin esta muy clara y si resuelvo esa observacin imagino que podre hacer el procedimiento, ayuda por
favor. Gracias

Responder

4.

Cristian Fuentealba3 de enero de 2014, 20:13

El error en el paso 7 es porque la formula "RESIDUO" debe ser reempplazada por "RESTO"

Como aplicar efecto intermitente en Excel


6 comentarios

Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con Facebook

En Microsoft Word cuando queremos aplicar un efecto intermitente al texto seleccionamos el mismo y desde
men Formato Fuente Efectos de texto aplicamos un efecto de Fondo intermitente.
Hacemos clic en Aceptar

En Excel no existe una opcin que permita aplicar un efecto de Fondo intermitente a una celda. Hemos de
aplicar formato condicional y a continuacin crear en un mdulo dos macros. La primera inicia un
procedimiento que ejecutar el formato condicional cada segundo para todas las hojas del libro activo. La
segunda macro detendr dicho proceso.

Si lo que queremos es que el fondo intermitente funcione nada ms abrir el libro, aadiremos dos eventos de
apertura y de cierre en ThisWorkbook.

Pasos:

Selecciona las celdas a las que quieres aplicar el efecto de fondo intermitente
Men Formato Formato condicional
Escribimos la siguiente frmula =RESIDUO(SEGUNDO(AHORA());2)=0

Hacemos clic en Formato


Aplicamos el formato que deseemos. En nuestro caso, negrita al texto.

Hacemos clic en Aceptar

Hacemos clic en Aceptar

Abrimos el editor VBA (alt+F11)


Insertamos un mdulo desde Insertar Mdulo

Escribimos el siguiente cdigo:

Public tiempo As Date


Sub Inicio()
tiempo = Now + TimeSerial(0, 0, 1)
Worksheets(1).Calculate
Application.OnTime tiempo, "Inicio"
End Sub
Sub Fin(): On Error Resume Next
Application.OnTime tiempo, "Inicio", Schedule:=False
End Sub

Esto sera suficiente para que la macro


funcionase. Tendramos que iniciarla y detenerla manualmente. Si lo que queremos es que funcione nada
ms abrir el libro entonces tendramos que insertar dos eventos de apertura y cierre en ThisWorkbook.

Pasos:

Hacemos doble clic en ThisWorkbook

Escribimos ambos eventos.

Para cuando abrimos el libro Workbook_Open() y llamamos al procedimiento Inicio y para cuando cerremos
el libro Workbook_BeforeClose llamando al procedimiento Fin
El cdigo a insertar es el siguiente:

Private Sub Workbook_Open()


Inicio
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Fin
End Sub

Guardamos el libro, lo cerramos y lo volvemos a abrir para comprobar que se ejecuta la macro nada
ms abrirlo.

En nuestro caso hemos combinado el rango D1:F1 y mediante formato condicional, hemos aplicado negrita

Las celdas se mostrarn en estos dos estados de manera intermitente

Creando el efecto de intermitencia, resaltado o parpadeo originario en Word.

Nota: Hemos de recordar que Excel es una hoja de clculo. Por tanto, no tiene efectos propios de un
procesador de texto como Word

Nota: El tipo de texto a aplicar depender del formato condicional que establezcamos en las celdas en
cuestin. Si en vez del texto, deseamos que parpadee el fondo de celda, entonces hemos de aplicar un color
de trama a la misma.
Si tienes alguna duda sobre este artculo, crees que hay algo incorrecto (falta de ortografa, error
en la imagen), una solucin ms sencilla o distinta, algo no te ha quedado claro o simplemente quieres saber
ms sobre sta u otras funciones o posibilidades y no quieres dejar un comentario, rellena el Formulario de
Contacto de la derecha.Te contestar personalmente.

Redactado en: Excel 2003

Entrada ms recienteEntrada antiguaPgina principal

6 comentarios:

Annimo dijo...

No es tan fcil como pensaba pero es un gran aporte... Gracias

17 de abril de 2010, 5:02

Aprendiz dijo...

Muchas gracias por tu visita. Nos alegramos de que te haya servido.

18 de abril de 2010, 13:42

Annimo dijo...

excelente sus aportes y siempre facil de ejecutar, gracias

14 de mayo de 2010, 9:48

Aladino dijo...

Cuanto nos alegramos!!

14 de mayo de 2010, 17:01

Annimo dijo...

Realmente fantstico, es justo lo que se espera y de una forma MUY sencilla.

Gracias

25 de mayo de 2010, 7:58


Annimo dijo...

Muy efectivo y rpido vuestro ejemplo, las palabras sobran amigos. Son ustedes una formidable ayuda. Muy buena

la macro. Cualquier duda les escribir por ste medio. Gracias.

Saludos.

Formato de Celda Intermitente


Despus de la buensima ayuda prestada ayer, me atrevo a pedirte una nueva solucion a un nuevo
problema.

Tengo una hoja de calculo en la que he utilizado en 2 columnas el FORMATO CONDICIONAL, para
que cuando las celdas cumplan determinada condicion, se pongan de color rojo o azul. Habria
posibilidad de que en el momento que se pongan de color(rojo o azul) parpadearan para asi resaltar
mas la condicion?

Recibe un cordial saludo y muchas gracias de antemano por tu respuesta sea la que sea.

SEGUIR

1 RESPUESTA

Dante Amor
3.590.100 pts. Si me amas, siempre voy a estar en tu corazn; si me...
el 23 oct. 12
Tiene que ser con una macro

Instrucciones
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el men elige Insertar / Mdulo
4. En el panel del lado derecho copia la macro

'***Macro cambia de color

Sub StartBlink()
'Por.Dam

Application.SendKeys "{ESC}"

'En esta parte se ponen las condiciones

If Range("B1") <> "" Then

If Range("B3") <> "" Then

Exit Sub

End If

End If

With ThisWorkbook.Worksheets("Hoja1").Range("A1:c4").Interior

If .ColorIndex = 5 Then ' Azul

.ColorIndex = 3 ' Rojo

Else

.ColorIndex = 5 ' Azul

End If

End With

RunWhen = Now + TimeSerial(0, 0, 1)

Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!StartBlink", , True

End Sub

'***Macro cambia de color

Ahora:

5. Del lado izquierdo tienes donde dice ThisWorkbook, dale doble click con el mouse

6. En el panel que te abre pega la siguiente macro

Private Sub Workbook_Open()

Por.Dam

Call StartBlink

End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Call StartBlink

End Sub

7. En la macro 1, tienes que actualizar las condiciones que necesitas y listo.

Saludos. Dam

Hola Dam

Me he debido de explicar mal,pues viendo tu ejemplo no es lo que yo pretendia.A pesar de ello he


intentado copiar tus macros para ver su funcionamiento en mi hoja de calculo y me da errores por
todas partes.El caso es que la macro de ayer,(reproducir mp3)me funciona perfectamente.

Tendrias inconveniente en que yo te mandara una de mis hojas de calculo?(Es una simpleza de
hoja,pero que a nosotros nos viene muy bien?Si no tienes inconveniente,como te hago llegar mi
archivo?

Un saludo muy cordial,Alex

La macro que te envi es un ejemplo de como las celdas pueden parpadear de un color a otro,
tienes que adaptarla a tus necesidades, dicho sea de paso, en la pregunta que enviaste no vienen
explicadas con detalle tus necesidades, slo mencionas que tienes dos columnas y que hay que
resaltar una condicin.

Tienes que ponerme un ejemplo diciendo exactamente qu es lo que quieres, en qu columnas, con
qu condicin, cmo se llama tu hoja, qu es lo que tienes en tu hoja y qu es lo que quieres que
aparezca, etc, etc.

Mi correo

jov19p3@yahoo.com

Saludos. Dam
CMO RESALTAR LA CELDA
ACTIVA EN EXCEL.

Mi archivo de Excel parece una sbana!


Alguna vez te has escuchado a ti mismo diciendo sto? Seguramente no te falta
razn!
Y es que son muchos los usuarios que manejan gran cantidad de datos en su hoja
de Excel.

A veces nos gustara tener un apoyo visual, como el que existe en ciertos sistemas
en los que en todo momento se nos muestra dnde est el cursor.

Imagina como sera tener esta ayuda en Excel.


Pero ser posible?

MS Excel no dispone de esa opcin, no de forma nativa al menos; pero gracias a su


gran flexibilidad, podemos realizar casi cualquier cosa que nos propongamos.

En la siguiente animacin vers una muestra lo que pretendo lograr:

Interesante No lo crees?

Pues sigue leyendo, porque te mostrar cmo puedes implementar esta til funcin
en tu propia hoja de Excel.
Vamos a dividir el proceso en 5 sencillos pasos:

1. Define el rea que vas a utilizar.


En primer lugar, debes tener en mente el rea en la cual vas a trabajar.
Para el ejemplo, voy a utilizar el rea que ocupa el rango A7:I27
2. Selecciona dos celdas que usars para control y que estarn fuera del rango
de trabajo.
En mi caso, he elegido las celdas B2 y B3

Dales un nombre a cada una.

A la celda B2 le he dado el nombre: miColumna


A la celda B3 le he dado el nombre: miFila

3. Usemos macros!
Presiona las teclas ALT + F11 (para abrir el editor de macros)

En la nueva ventana que se abri, haz clic derecho sobre el nombre de la

hoja en la que estabas trabajando y selecciona la opcin View Code (O ver


cdigo si est en espaol)
En las listas de arriba, selecciona Worksheet y SelectionChange.

Excel te mostrar una funcin Worksheet_SelectionChange()que est vaca.

Dentro de esa funcin, escribe las siguientes lneas:

[miColumna] = Target.Column
[miFila] = Target.Row

Este cdigo lo que hace es asignar el valor de la columna y la fila actual a


su correspondiente celda de control. Por eso hemos utilizado los nombres
que le dimos a estas celdas hace un momento.

Haz la prueba. Cambia de celda y observa cmo se actualizan


automticamente los valores en las celdas de control.
Nota: Es importante que utilices los parntesis angulares -tambin llamados
corchetes- ( [ ] ), ya que sta es la forma de decirle a Excel que nos
estamos refiriendo a un nombre definido en la hoja y no a una variable.

4. Formato condicional. Una vez que ya tenemos la informacin referente a la


columna y fila seleccionada, vamos a aplicar un formato condicional.
Selecciona el rango de tu rea de trabajo. En mi caso es el A7:I27

Ve a la opcin Conditional Formatting -> New Rule

Selecciona la ltima opcin Use a formula to determine wich cells to format

Ingresa la siguiente frmula:

=COLUMN(A7)=miColumna
Repite la operacin para agregar otra condicin al formato condicional e
ingresa la siguiente frmula:
=ROW(A7)=miFila

No olvides aplicar el formato en cada paso, indicndole el color de fondo


con el que quieres que se resalte la ubicacin de la celda actual.

Nota: Siempre utiliza la referencia a la primera celda de tu rango. En mi


caso tengo el rango A7:I27, por lo tanto, la primera celda es la A7, y es la
que uso en la frmula del formato condicional.

5. Disfruta del resultado!


Ahora utiliza esta tcnica en tus reportes, nminas, tableros de comando,

etc. Seguramente dejars impresionado a tu jefe!


133 Comments
Raymundo Ycaza: Domina Excel, paso a paso.
Login

Recomendar
Compartir
ordenar por el ms nuevo

nete a la discusin...

Raymundo Ycaza

Al registrarse, usted est de acuerdo con el Disqus Reglas bsicas, Trminos de Servicio, y Polticas de Privacidad.

o
o

Carlos hace 10 meses

Muy bueno el ejercicio, necesitaba algo asi para utilizarlo en mi trabajo.


Mi nica duda es, habr manera de poder utilizarlo con la hoja del libro Protegida.?
Ya que al proteger la hoja con contrasea, aparece un error.
Saludos.
o
o
o Reply
o
o Compartir

o
o

Daniel Vsquez Carlos hace 3 meses

Resolv el problema agregndole al inicio de la macro despus del nombre de la macro:

ActiveSheet. Unprotect

y al final de la macro antes del end sub

ActiveSheet. Protect

Espero te sirva.
Saludos


Reply

Compartir

Jixer Carlos hace 5 meses

cuando proteges la hoja debes marcar la casilla que te permite seleccionar celdas


Reply

Compartir

o
o

Edson hace 2 aos

Hola,es muy bueno este ejercicio, pero me pasa algo realizo todo el procedimiento y no me resalta las celdas ,
incluso veo que mi opcion de actualizar automaticamente las formulas esta activada, por favor no se que falta o
estoy haciendo mal, podrias ayudarme?
o
o
o Reply
o
o Compartir

o
o

Alejandro Ramrez Edson hace 5 das

Hola, ya revisaste que versin de Excel manejas??? Yo manejo la versin en espaol, por lo que al
escribir la frmula en el formato condicional, esta debe ser de la siguiente manera:

=Columna(B6)=miColumna EN LUGAR DE =Column(B6)=miColumna y


=Fila(B6)=miFila EN LUGAR DE =Row(B6)=miFila

En el ejemplo, Raymundo trabaja con la versin en ingls de Excel, por lo que al copiar la frmula y
aplicarla en nuestro archivo, esta no resalta la celda. Pero si lo haces en el idioma al espaol como te
lo escrib arriba, esta ya se sombrea.

Te lo comento, porque al principio no lograba que ocurriera el efecto en mi formato.

Espero haberte ayudado.

Saludos


Reply

Compartir

o
o

RO hace 2 aos

Hola, excelente aporte!!!! me pasa que debo ingresar algo en la celda o presionar F2 sobre ella para que esta
destaque el rango. Es as o estoy cometiendo un error?

gracias!!
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza RO hace 2 aos

Hola Rodrigo. Pues tal vez se deba a que tienes deshabilitada la opcin de actualizar
automticamente las frmulas. Bscala en las opciones de Excel y habiltala para que no te suceda
eso.

Saludos


Reply

Compartir

o
o

Dharko hace 2 aos

Usted present una forma de resaltar la celda activa que es muy buena y funciona, pero lo que yo necesito y no
logro modificar, es que la celda activa se duplique en otra celda fija (cambiado el contenido de la celda fija a
medida que me muevo por la celda activa).

Por favor agradecera su ayuda.


o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Dharko hace 2 aos

Hola.

Eso creo yo que se resolvera con solo poner una referencia de esta forma:

Range("A1").Value = ActiveCell.Value

Para el caso de que tu "celda fija" sea la A1.

Saludos


Reply

Compartir

o
o

Emmanuel hace 2 aos

Hermano me funciono a la perfeccin. Hace tiempo estaba buscando esto y no lo poda encontrar. Aparte fuiste
muy claro en los pasos y agregar el ejemplo suma mucho. Y los comentario de las personas tambin son un
gran aporte ya que por ah cometemos errores que son luego aclarados en los mismos comentarios.
Muchsimas Gracias por la informacin. Saludos desde Argentina.
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Emmanuel hace 2 aos

Hola, Emmanuel.
Gracias a vos por pasar a saludar.

Un abrazo desde Ecuador.




Reply

Compartir

o
o

Nicke hace 2 aos

Disculpa Raymundo, no funciona el Ctrl+z.


Gracias
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Nicke hace 2 aos

Hola, Nicke.

Como especifiqu en la entrada, esa es una de las desventajas de usar la tcnica con las macros.

Saludos


Reply

Compartir

o
o

Sergio Mndez hace 2 aos

Muchas gracias, fue de mucha utilidad.


o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Sergio Mndez hace 2 aos

Gracias a ti por pasar a saludar. :D

Saludos


Reply

Compartir

o
o

Danniel hace 2 aos

HOLA BUEN DA TENGAN TODOS UD...

ESTOY INTENTANDO HACER AL PIE DE LA LETRA ESTE TIPO DE MACRO,PERO AL PARECER


NO ENCUENTRO LA OPCIN DE FORMATO CONDICIONAL,ESTOY USANDO
WINDOWS 7 PROFESSIONAL....ME PODRAN APOYAR ...PORFA...
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Danniel hace 2 aos

Hola, Daniel. La puedes encontrar en la ficha Inicio, en la seccin "Estilos"

Saludos


Reply

Compartir

o
o

Juanfer hace 2 aos

Muy Bueno, me gusto mucho!. En esta forma se podr pero solo para seleccionar la celda activa?
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Juanfer hace 2 aos

Hola, Juanfer.

El truco est en el formato condicional. Solo excluyes las celdas que hacen la cruz y se activar
nicamente la celda activa.
Saludos


Reply

Compartir

o
o

Juan Manuel hace 2 aos

Buenas tardes Ray.


Gracias por publicar este artculo, me sirve bastante. Como puedo unirme a su club y cul sera el costo?
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Juan Manuel hace 2 aos

Hola, Juan Manuel.

Puedes suscribirte a la Newsletter y acceder al curso No. 1 que es gratuito.

Un abrazo


Reply

Compartir

o
o
Luis Angel hace 2 aos

Excelente, la forma ms sencilla de realizarlo... Grandiosa solucin. Gracias.


o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Luis Angel hace 2 aos

Hola Luis Angel.

Gracias a ti por pasar a saludar. :D

Saludos


Reply

Compartir

o
o

Andy Guillen hace 2 aos

Buenas Tardes. Excelente su aporte a mis conocimientos. Tengo una pregunta. Cmo hago para el cambio de
colores no se haga en la impresin del documentos lo quiero imprimir sin que las lneas y columnas cambien
de su color original?
o
o
o Reply
o
o Compartir


o
o

Raymundo Ycaza Andy Guillen hace 2 aos

Hola, Andy.

Puedes utilizar el evento BeforePrint

Private Sub Workbook_BeforePrint(Cancel As Boolean)


' Aqu colocaras el cdigo que "limpie" todas las celdas antes de imprimirse.
End Sub

Saludos


Reply

Compartir

o
o

Luis hace 2 aos

Hola, amigo muchas gracias por tu aporte me ha sido de gran ayuda en varios reportes.
Hoy se me presento un nuevo problema y es que no logro hacer que funcione en varias hojas del mismo libro,
me puedes iluminar por favor?

Gracias.
o
o
o Reply
o
o Compartir

o
o


Raymundo Ycaza Luis hace 2 aos

Hola, Luis.

Una forma sencilla sera colocar el cdigo mostrado en un mdulo y luego en cada hoja, en el evento
SelectionChange correspondiente, colocaras una invocacin a esta funcin centralizada.

Atento con los nombres definidos, deberas ponerlo en una hoja centralizada tambin, que puedes
llamar "configuracin" o a tu gusto.

Saludos


Reply

Compartir

Alejandro Ramrez Raymundo Ycaza hace un ao

Saludos Ray,

Me podras explicar como hago para que el cdigo lo grabe en un mdulo??? No entiendo
mucho sobre la estructura que muestra Excel en VBA y cuando sealas "... colocarlas una
invocacin a esta funcin centralizada"

O el hacerlo en una hoja centralizada??? sera solo para este libro o todos los nuevos libros
que cree con macros


Reply

Compartir






Raymundo Ycaza Moder. Alejandro Ramrez hace un ao

Hola, Alejandro. Siempre que se pueda, es mejor hacerlo en un mdulo. Clic derecho
sobre los objetos de Excel (en el editor de VBA) y le das a insertar/mdulo.

Ah quedar centralizado el cdigo para hacerlo accesible a todos los puntos de tu


archivo (si as lo deseas)

Un saludo


Reply

Compartir

o
o

Juan Carlos hace 2 aos

Hola que buenos aportes tienes, felicidades, una consulta como puedo realizar en un panel de 5 x 5 , la casilla
que escoja por ejemplo A2 se mueva 20 casillas (movimientos permitidos arriba,abajo, derecha e izquierda sin
que se salga del panel) y me deje trazada la ruta es posible esto, gracias y saludos
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Juan Carlos hace 2 aos

Hola, Juan Carlos.

Tendras que utilizar una funcin en VBA que compruebe en qu posicin se encuentra la celda
seleccionada y debers jugar con sumas, restas y tal vez algo de mdulo y residuo, dependiendo de
cmo lo enfoques. Pero creo que tendras que utilizar un bucle en el que compruebes siempre las
celdas que faltan en la direccin actual y, en caso de que se te acaben, verificar en vertical si te
puedes mover y cambiar la direccin. Por supuesto, esto sera utilizando el
Activecell.Offset(x,y).select

Saludos


Reply

Compartir

Juan Carlos Raymundo Ycaza hace 2 aos

Muchas gracias por tu apoyo te avisare como me fue saludos.....




Reply

Compartir

o
o

JANE NUNEZ hace 2 aos

Una consulta, una vez que apliques este formato para que se resalte cuando pases el cursor; ya no se puede
sobrear la celda verdad? lo he intentado ya que siempre sombreo la celda para que me haga recordar alguna
notacion o como resaltando, y se me borra.

Gracias por tu ayuda, no pude sacar por que me estanque en macro, pero baje tu archivo de un comentario, y
me sirvio mucho, gracias, espero no te molestes, es que no soy buena con la vista y esto me ayuda mucho.
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza JANE NUNEZ hace 2 aos

Hola, Jane. No hay problema, el archivo lo publiqu para que fuera descargado =)

Pues s, al ejecutarse la macro se pinta la celda nuevamente. Podras reemplazarlo por un comentario
en la celda y as te ayudas. Siempre visible para no depender de esa marquita roja tan pequea.

Saludos


Reply

Compartir

o
o

steven hace 2 aos

Buenas tardes, he encontrado muy interesante el este dato, pero quisiera ir mas all, quisiera que al momento
de seleccionar una celda, los datos de las filas y columnas adems de rellenarse del color elegido se pueda
modificar el tamao de dichos numeros o textos (hacerlos mas grande), en el formato condicional no pude
hacerlo y quisiera saber si hay alguna forma. gracias :)
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza steven hace 2 aos

Hola, Steven.
Para cambiar el tamao de la fuente, podras probar con el siguiente cdigo en el lugar que ms se
acomode a lo que pretendes:

Range("A1").Font.Size = 25

Para cambiar el tamao de la fuente en la celda A1 a un 25

Saludos


Reply

Compartir

Alejandro Ramrez Raymundo Ycaza hace un ao

Saludos Ray,

El cdigo lo introduzco cuando est ingresando la macro de este ejercicio o es un nuevo


cdigo que generar por separado???


Reply

Compartir

Raymundo Ycaza Moder. Alejandro Ramrez hace un ao

Hola, Alejandro. El cdigo lo ingresas al crear la macro tal cual. Paso por paso.

Un saludo


Reply

Compartir

o
o

Eduardo hace 2 aos

Buenos das, te comento: hice u na macro en office 2010 en espaol, y funciona a la perfeccin, el detalle es a
la hora de pasarla a otra maquina que tiene el office 2013 en ingles, no me arroja el resultado me sale #NA,
QUE CREES QUE ESTE PASANDO, DE ANTEMANO AGRADEZCO TU APOYO

SALUDOS
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Eduardo hace 2 aos

Hola, Eduardo.

"Una macro" no me dice mucho. En office 2013 cambiaron un par de cosas que podran estar
afectndote, pero ni idea cul sera si no se qu macro hiciste.

Que tengas un buen fin de semana.




Reply

Compartir

o
o
Aldair hace 2 aos

Que tal, hasta el momento de colocar el cdigo en VBA todo perfecto, sin embargo al momento de colocar el
formato condicional simplemente despus de aceptar cada formato, no se observa nada, ya he buscado que
pudiera pasar, lo he revisado y no encuentro cual es la falla, no se si haya saltado algn paso. Saludos!
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Aldair hace 2 aos

Al presionar la tecla F9 o al hacer cualquier cambio, se activa la macro?

Saludos


Reply

Compartir

o
o

NELL TORRES hace 2 aos

no pude, me funciona hasta donde las celdas de micolumna y mifila cambian de valores, pero cuando ya le doy
el formato condicional y temino el proceso no cambian de color. ayuda
o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza NELL TORRES hace 2 aos

Ests seleccionando las celdas correctas al aplicar el formato condicional?




Reply

Compartir

o
o

rsbacas hace 2 aos

Excelente! Gracias, muchas gracias, me salvaste la vista.


o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza rsbacas hace 2 aos

Un placer. Gracias por pasar a saludar.




Reply

Compartir

o
o
Javier Hernandez hace 2 aos

y si quiero que me lo muestre en una grafica como seria amigo?


o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Javier Hernandez hace 2 aos

Hola, Javier. No entiendo. A qu te refieres?

Saludos


Reply

Compartir

o
o

Priscila Guerra hace 3 aos

Genial, gracias por la ayuda!!


o
o
o Reply
o
o Compartir

o
o

Raymundo Ycaza Priscila Guerra hace 2 aos

Un placer, Priscila.

Saludos

CMO RESALTAR UNA FECHA DE


VENCIMIENTO EN EXCEL.
by Raymundo Ycaza

Manejas algn listado de clientes? Tienes cartera vencida y te gustara poder


resaltar aquellos registros cuya fecha de pago ya expir? Aqu te cuento mi forma de
hacerlo automticamente.

Hace un tiempo, en la seccin de consultas del blog, recib un mensaje de una


persona que quera resaltar los registros en los que se ha vencido la fecha de pago.
Hoy quiero compartir contigo los pasos que se requieren para lograr este efecto en
nuestras hojas de Excel.

Tabla de contenido [ocultar la tabla]


1 El objetivo.
o 1.1 El objetivo, por lo tanto, es realizar lo siguiente:
2 Resaltar una fecha de vencimiento en 3 pasos.
o

2.0.0.1 Frmula
2.0.0.2 Recuerda
3 Ponte manos a la obra!

El objetivo.
Imagina que tienes un listado de crditos o prstamos otorgados a ciertos clientes.

En este listado sencillo, has anotado el nombre, el monto y la fecha de vencimiento


(la fecha en la que te tiene que pagar).

El objetivo, por lo tanto, es realizar lo siguiente:

1. Comparar la fecha de vencimiento contra la fecha actual.


2. Si ya se ha cumplido la fecha de pago, pintar en rojo la fecha (no vamos a pintar
toda la lnea).

Resaltar una fecha de vencimiento en 3 pasos.


Para lograr nuestro objetivo, vamos a utilizar el formato condicional. Mralo paso a
paso:

1. Selecciona el rango donde estn las fechas y pincha en la pestaa Inicio (1)
Luego pincha en el botn Formato Condicional (2) y por ltimo pincha en la opcin
Nueva regla
2. Ahora, en el cuadro de dilogo que aparece, elige la opcin Utilice una frmula
que determine las celdas para aplicar formato. (1)

3. El siguiente paso es utilizar una frmula para realizar la comparacin entre la


fecha actual y la fecha de vencimiento (2).
La frmula que estoy utilizando aqu es la siguiente:

Frmula
=HOY()>=C2

Recuerda
La funcin HOY() devuelve la fecha actual, sin fracciones.
Aqu estoy hacindole una pregunta a Excel: Es la fecha de HOY, mayor o igual a
la fecha que est en la celda C2?
Si la respuesta es s, entonces Excel aplicar los colores y tipo de letra que le
indiquemos pinchando en el botn Formato (3).

Fjate que no he utilizado anclajes en la referencia C2, es decir, no he utilizado el


smbolo $, ya que me interesa que la frmula se desplace y as la validacin se
realice en todas las celdas del rango.

4. Listo! Ya puedes pinchar en el botn Aceptar y habrs terminado tu archivo de


cartera, en el que automticamente se resaltarn aquellos registros en los que se
haya alcanzado la fecha de vencimiento. Hora de cobrar!

CMO CREAR UNA CELDA


INTERMITENTE EN EXCEL
[DESAFO]
by Raymundo Ycaza

Tweet
Share
+1
Share

Resaltar una celda en Excel es un tema que ya tocamos en esta entrada; pero tal vez
no resulte algo tan obvio el simplemente cambiar el color y nos resulte mejor algo
como crear una celda intermitente en Excel.
Qu significa esto?

Pues crear una celda que comience a parpadear, avisndonos de su presencia o,


mejor an, sirvindonos como aviso para eventos importantes. Un caso parecido
tratamos ya en la entrada Resaltar una Fecha de Vencimiento.

Tabla de contenido [ocultar la tabla]


1 Suscrbete a mi lista de correos!
o 1.1 Crear una celda intermitente en Excel.
2 Adems, el archivo terminado.
o 2.1 Crditos de imagen de portada:
o 2.2 http://www.freeimages.com/photo/506798
3 Y eso es todo.

Hoy quiero proponerte algo. Voy a guiarte por todos los artculos que yo he creado y
que te servirn para lograr este objetivo, te dejar el archivo de ejemplo y t sers
quien se encargue de poner en prctica lo aprendido para comprender el
funcionamiento y realizar tu propia versin de esta planilla.

Te interesa?

Pues vamos directo al grano!

Crear una celda intermitente en Excel.


Usaremos una condicin muy sencilla. Imaginemos que tratamos con una calificacin
del 1 al 10 y queremos que el sistema nos avise cuando la calificacin es menor que
5.

Si el valor es menor que 5, una celda comenzar a parpadear, mostrando el mensaje


Reprobado, avisando que existe una novedad importante. En caso contrario, no
har ningn cambio.
Y cmo haremos para que la celda se pinte de manera intermitente?

Pues, nos ayudaremos de la entrada Cmo ejecutar una macro peridicamente, que
ya vimos hace algn tiempo.
Lo que lograremos ser una planilla que nos alertar con una gran celda roja
intermitente que se esforzar por decirnos que algo no anda del todo bien.

7 ATAJOS DE RATN PARA EXCEL


QUE DEBERAS CONOCER
by Raymundo Ycaza

Te he mencionado alguna vez que los Tips que ayudan a mejorar mi Productividad
son mis favoritos?

Los atajos de teclado son muy efectivos para incrementar nuestra velocidad de
trabajo con Excel y si los combinamos con atajos de ratn, la cosa pasa a otro nivel.
Por eso no te pierdas estos consejos que comparto contigo a continuacin.
Tabla de contenido [ocultar la tabla]
1 Suscrbete a mi lista de correos!
o 1.1 #1 Cerrar el Archivo Actual, con un doble clic en el Botn o Logo de Office.
o 1.2 Ajustar el Ancho de varias columnas a la vez, con un doble clic justo entre ellas.
o 1.3 #2 Rellenar Automticamente una serie, con un doble clic.
o 1.4 #4 Salta a la ltima columna o fila con un doble clic.
o 1.5 #5 Gana ms espacio en tu rea de trabajo haciendo que la cinta de Excel se
esconda con un doble clic.
o 1.6 #6 Desplazarte por las secciones de la cinta de Excel, usando la ruedita del ratn.
o 1.7 #7 Reutilizar un formato cuantas veces necesites, con un doble clic.
2 Ahora es momento de probar tus Superpoderes
3 Tienes un atajo de ratn favorito?

#1 Cerrar el Archivo Actual, con un doble clic en el Botn o Logo de Office.


As de simple. Si no has guardado el trabajo actual, Excel te preguntar si deseas
hacerlo antes de cerrar. Para cerrar el archivo actual, suele ser ms rpido que
apuntarle con el ratn a la segunda X de la esquina superior derecha de la ventana.

Esto equivale a presionar:

Atajo de Teclado:

CTRL + F4
Ajustar el Ancho de varias columnas a la vez, con un doble clic justo entre
ellas.
Nunca te ha pasado que necesitas ajustar el ancho de las columnas para que se
adapte al contenido? Y en muchas ocasiones hemos terminado hacindolo columna
por columna.
Pues si seleccionas todas las columnas y haces un doble clic, justo en la parte donde
se unen dos columnas, conseguirs que todas se ajusten automticamente a su
contenido.
#2 Rellenar Automticamente una serie, con un doble clic.
Puedes indicarle a Excel que complete automticamente una serie, si seleccionas lo
que has escrito hasta el momento, y haces un doble clic sobre la esquina inferior
derecha (el puntero se transformar en una pequea cruz)

#4 Salta a la ltima columna o fila con un doble clic.


Si quieres desplazarte hasta la ltima fila o columna, puedes hacerlo sin necesidad
de soltar el ratn. Basta con que hagas un doble clic sobre uno de los lados de la
celda activa y Excel automticamente se desplazar hasta la ltima celda con
contenido, en la misma direccin que elegiste. Mira la siguiente animacin para
quedar ms claros.

Esto equivale a presionar:

Atajo de Teclado:

CTRL +
o

CTRL +
o

CTRL +

CTRL +

CTRL +

Y vers como la celda activa salta hasta la ltima celda con datos en la direccin de
la flecha que presionaste:

#5 Gana ms espacio en tu rea de trabajo haciendo que la cinta de Excel


se esconda con un doble clic.
Quisieras tener ms espacio para trabajar? Entonces quitemos la cinta de Excel!
O bueno, basta con esconderla.

Para hacerlo, debes hacer doble clic sobre cualquiera de las pestaas que marcan
las diferentes secciones de la cinta, tal y como lo muestra la siguiente animacin.

Esto equivale a presionar:

Atajo de Teclado:

CTRL + F1
#6 Desplazarte por las secciones de la cinta de Excel, usando la ruedita del
ratn.
Quieres desplazarte ms rpido por las opciones de la cinta de Excel? Pincha sobre
una ficha y entonces utiliza la ruedita del ratn. Del ratn no desaprovechamos
nada!

#7 Reutilizar un formato cuantas veces necesites, con un doble clic.


Dime: Cuntas veces quisiste dejar una celda exactamente igual a otra, pero no
recordabas todos los pasos que hiciste al momento de darle formato? O tal vez eran
muchos pasos.

Ayudara mucho si usaras una forma de copiar esos pasos de una sola ves. No lo
crees?

Para lograrlo podras hacer un pegado especial, o podras usar la Brocha de


Formato. El inconveniente con la brocha, es que tendras que copiar el formato
dando clic sobre este icono y luego sobre la celda destino, repitiendo estos dos
pasos por cada celda que necesites formatear.
Hay un truco muy sencillo que consiste en hacer doble clic sobre el icono de la
brocha y esta quedar anclada, de manera que el formato no se perder y podrs
aplicarlo tantas veces como desees, hasta que lo liberes con un clic nuevamente
sobre el icono.

Ahora es momento de probar tus Superpoderes


Bueno, ni tanto Lo cierto es que si utilizas estos tips y los complementas con tus
atajos de teclado favoritos, te convertirs en una mquina de productividad al
momento de trabajar con Excel.

CMO BLOQUEAR CIERTAS


CELDAS EN EXCEL, SI NO SE HAN
LLENADO OTRAS.
by Raymundo Ycaza
Jonn_Rosales me preguntaba en Twitter sobre cmo podra hacer para bloquear
ciertas celdas en Excel, cuando an el usuario no ha terminado de rellenar otras.

hola Ray buen dia, una consulta: puedo bloquear de alguna forma la
columna B si aun no lleno lo de la columna A??

Tabla de contenido
1 Suscrbete a mi lista de correos!
2 Qu es lo que he conseguido con este cdigo?
o 2.1 Intersect

o 2.2 If ([a2] = Or [a3] =

o 2.3 Target.Value

3 El archivo terminado
4 Qu te parece?
Es esto posible?

Pues s. Como siempre, hay ms de una respuesta, pero hoy te dar una de las ms
simples y con esa base, tu podrs ir experimentando por tu cuenta.

Primero, vas a guardar tu archivo con extensin xlsm.

Luego, en el objeto Hoja1 vas a insertar el cdigo que te muestro ms abajo.

Que no recuerdas cmo trabajar con macros?

Entonces psate de nuevo por la entrada escribe tu primera macro en Excel.


Listo?

Bien! Ahora, vas a insertar el siguiente cdigo dentro de el evento


WorkSheet_Change de tu hoja:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(ActiveCell, Range("B1:B10")) Is Nothing Then

If ([a2] = "" Or [a3] = "" Or [a4] = "" Or [a5] = "" Or [a6] = "") And Target.Value <> "" Then

Target.Value = ""
MsgBox "No has terminado con la columna A. Debes llenar todos los datos antes de continuar.", vbCritical +
vbOKOnly, "RaymundoYcaza.com"

End If

End If

End Sub

Qu es lo que he conseguido con este cdigo?


Cada vez que trates de escribir en cualquier celda de la columna B, dentro del rango
B1:B10, Excel borrar cualquier texto que trates de escribir ah a menos que hayas
completado todas las celdas indicadas en la columna A.

Intersect
Con esta lnea, lo que hago es preguntarle a Excel: El cambio se hizo dentro del
rango B1:B10?

Si la respuesta es s, entonces contino con la revisin.

If ([a2] = Or [a3] =
Con esta lnea estoy preguntando, celda a celda, si est vaca. Es decir, si la celda
A2 est vaca o la celda A3 est vaca o la celda A4 est vaca o

Bueno, ya entiendes la idea.

Si cualquiera de esas condiciones se cumple, entonces proceso a invalidar la accin.

Mucho ojo: Tambin considero que el valor asignado no sea vaco ( )


Si no hicieras esto, tu programa caera en un bucle infinito.

Target.Value
Target es el objeto que contiene el valor de la celda que ha cambiado. O mejor dicho,
es una referencia a esta celda, por lo que manipular el objeto target, sera casi como
estar manipulando la celda misma.

Aqu lo que he hecho es asignarle una cadena vaca en caso de que se cumpla que
hay algn dato faltante y con eso obtengo el efecto de celda bloqueada que Jonn
andaba buscando.
2 Comments
Raymundo Ycaza: Domina Excel, paso a paso.
Login

Recomendar 1
Compartir
ordenar por el ms nuevo

nete a la discusin...

jcabral hace 4 aos

me gusto el video y te tengo una pregunta. como se hace para cerrar solo el libro activo y por favor trata de que
los codigos se puedan ver. osea acerca mas la pantalla.gracias

Raymundo Ycaza jcabral hace 4 aos


Hola, jcabral.

Para cerrar el libro activo, deberas utilizar:

ActiveWorkbook.Close False

Si no quieres que se graben los cambios realizados, o:

ActiveWorkbook.Close True

En caso de que quieras grabar los cambios que haya sufrido el archivo.

Saludos,

Hacer parpadear una celda


En este ejemplo se muestra cmo hacer que la celda B2 de la hoja 1 parpadee cambiando el color y el texto
del rojo al negro, y viceversa, en el procedimiento StartBlinking. El procedimiento StopBlinking muestra
cmo detener el parpadeo desactivando el valor de la celda y estableciendo la propiedad ColorIndex en
blanco.

Option Explicit
Public NextBlink As Double
'The cell that you want to blink
Public Const BlinkCell As String = "Sheet1!B2"

'Start blinking
Private Sub StartBlinking()
Application.Goto Range("A1"), 1
'If the color is red, change the color and text to white
If Range(BlinkCell).Interior.ColorIndex = 3 Then
Range(BlinkCell).Interior.ColorIndex = 0
Range(BlinkCell).Value = "White"
'If the color is white, change the color and text to red
Else
Range(BlinkCell).Interior.ColorIndex = 3
Range(BlinkCell).Value = "Red"
End If
'Wait one second before changing the color again
NextBlink = Now + TimeSerial(0, 0, 1)
Application.OnTime NextBlink, "StartBlinking", , True
End Sub

'Stop blkinking
Private Sub StopBlinking()
'Set color to white
Range(BlinkCell).Interior.ColorIndex = 0
'Clear the value in the cell
Range(BlinkCell).ClearContents
On Error Resume Next
Application.OnTime NextBlink, "StartBlinking", , False
Err.Clear
End Sub

Como hacer parpadear una celda en excel


As como en word se dan efectos de relleno necesito que en excel parpadee un a celda.
SEGUIR

1 RESPUESTA

nilton31a
15.575 pts.
el 26 nov. 09
EXCEL como te podrs dar cuenta no tiene en su funciones para dar efecto a una o varias celdas,
pero se me ocurre que realices lo siguiente:
1.- Selecciona el rango que deseas con efectos
2.- Ve a la opcion de formato condicional, seleciona "Formula" y coloca lo siguiente
=RESIDUO(SEGUNDO(AHORA()),2)=0
3.- Selecciona formato y selecciona los cambios que deseas ver. Al finalizar acepta los cambios.
4.- Abre el editor de visual basic e inserta un modulo, colocando lo siguiente:
Public tiempo As Date
Sub Inicio()
tiempo = Now + TimeSerial(0, 0, 1)
Worksheets(1).Calculate
Application.OnTime tiempo, "Inicio"
End Sub
Sub Fin(): On Error Resume Next
Application.OnTime tiempo, "Inicio", Schedule:=False
End Sub
5.- En la parte derecha da doble click en ThisWorkbook, ahi coloca este codigo:
Private Sub Workbook_Open()
Inicio
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Fin
End Sub
6-. Cierra el editor, guarda los cambios y cierra tu libro al abrirlo nuevamente veras el efecto.
Saludos y espero te sirva y sea lo que necesitas.

Color intermitente en celda


Color intermitente en celda
Mediante una macro podemos poner una o varias celdas de excel con un color intermitente a modo de alerta.

Para ello solo es necesario ejecutar esta macro y nos pondr de forma intermitente la celda A1:

Sub alerta()
If Range("a1").Interior.ColorIndex = 3 Then
Range("a1").Interior.ColorIndex = 4
Else
Range("a1").Interior.ColorIndex = 3
End If
Application.OnTime Now + TimeValue("00:00:01"), "alerta"
End Sub

Macro para poner celdas con colores


intermitentes
Quisiera que unas celdas (A1:C4) de un libro excel llamaran la atencin si no estn completas, es
decir que se pusieran de colores intermitentes si B1 y B3 estn vacas. He encontrado esto en
internet:

Sub StartBlink()
With ThisWorkbook.Worksheets("Hoja1").Range("A1:c4").Interior
If .ColorIndex = 6 Then ' Red Text
.ColorIndex = 10 ' White Text
Else
.ColorIndex = 6 ' Red Text
End If
End With
RunWhen = Now + TimeSerial(0, 0, 1)
Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!StartBlink", , True
End sub

Bien porque las celdas seleccinadas cambian de color, pero no se como hacer para pararlas
cuando se completan. Adems me gustara que se ejecutara al abrir el archivo, como puedo hacer.

SEGUIR

1 RESPUESTA

Luis Mondelo
804.400 pts. Excel avanzado y VBA
el 19 oct. 12
Preparar un ejemplo y te lo mando.

el 30 oct. 12

Ok, muchas gracias espero tu ejemplo

el 30 oct. 12

Prepara tu rango A1:C4 totalmente vaco y ejecuta esta macro:

Sub nuevo()

'por luismondelo

If Range("b1").Value = "" Or Range("b3").Value = "" Then

If Range("a1:c4").Interior.ColorIndex = 10 Then

Range("a1:c4").Interior.ColorIndex = 6

Else

Range("a1:c4").Interior.ColorIndex = 10

End If

End If

Application.OnTime Now + TimeValue("00:00:01"), "nuevo", , True

End Sub

El rango empezar a parpadear pero en el momento que completas la celdas B1 y B3 se parar

No olvides finalizar la consulta

Celda Excel Intermitente


Busco vuestra ayuda de expertos ante el siguiente problema, necesito una macro, que cada vez que
en la celda "A10" del libro "bloques" la cantidad sea distinta a 75 el color de la celda o mejor dicho el
fondo de la celda parpadee entre dos colores de forma que se vea el texto, y si el valor de la celda
vuelve a ser 75 automticamente deje de parpadear y se quede el color de fondo que tiene por
defecto.

SEGUIR

1 RESPUESTA
RESPUESTA DE LUIS MONDELO
1

Luis Mondelo, Excel avanzado y VBA


Te mando mi solucin. Copia la siguiente macro en el objeto hoja que estamos trabajando, no en un
mdulo. Supongo que la hoja se llamar bloques...

Private Sub Worksheet_Change(ByVal Target As Range)

'macro creada por luismondelo

On Error Resume Next

If Target.Address = "$A$10" And Target.Value <> 75 Then

timer

ElseIf Target.Address = "$A$10" And Target.Value = 75 Then

parar

target.interior.colorindex = xlnone

End If

End Sub

Ahora copia estas macros en un mdulo

Sub timer()

Application.OnTime Now + TimeValue("00:00:01"), "pintado"

End Sub

Sub pintado()
Range("a10").Interior.ColorIndex = Application.WorksheetFunction.RandBetween(3, 4)

timer

End Sub

Sub parar()

Application.OnTime Now + TimeValue("00:00:01"), "pintado", , False

End Sub

Despus solo tienes que ir a la hoja en cuestin y teclear en A10 un valor distinto de 75, vers como
empiezan los colores intermitentes. Luego puedes teclear el 75 en la misma celda para comprobar
que se para el intermitente y dela la celda sin relleno.

Recuerda finalizar y puntuar

el 27 may. 12

Hola Experto, debe de haber algn error por que se me para la macro en el cdigo de la hoja donde
pongo 75 la hoja se llama "cuentas" ah he pegado la primera parte.

espero

Gracias.-

el 27 may. 12

Dame un mail y te mando un ejemplo funcionando.

INICIAR SESIN CREAR CUENTA


Microsoft Excel

Luis Danny Salas... el 15 mar. 12

Celda intermitente con frmula


Qu debo hacer si la celda que quiero que sea intermitente tiene una frmula?

SEGUIR

1 RESPUESTA
RESPUESTA DE LUIS MONDELO
1

Luis Mondelo, Excel avanzado y VBA


Prueba con esta macro. Ejecutala y la celda C4 (ejemplo) se pondr intermitente con los colores
blanco y rojo

Sub color()

Application.OnTime Now + TimeValue("00:00:01"), color

c = Application.WorksheetFunction.RandBetween(2, 3)

Range("c4").Interior.ColorIndex = c

End Sub

el 16 mar. 12

me dio error de complilacin

el 18 mar. 12

La web se comi unas comillas al copiarlo. Ahora est correcta:


Sub color()
Application.OnTime Now + TimeValue("00:00:01"), "color"
c = Application.WorksheetFunction.RandBetween(2, 3)
Range("c4").Interior.ColorIndex = c
End Sub

el 19 mar. 12

genial, y con cual macro puedo detenerla? :)

el 19 mar. 12

En ese caso tienes construir dos macros como te muestro a continuacin:

Cpialo tal cual a un mdulo y ejecuta primera la macro COLOR, despus puedes ejecutar la macro
PARAR y se parar el parpadeo.

El primer rengln es para declarar a la variable var como pblica.

Public var

Sub color()

Application.OnTime Now + TimeValue("00:00:01"), "color"

var = Now + TimeValue("00:00:01")

c = Application.WorksheetFunction.RandBetween(2, 3)

Range("c4").Interior.ColorIndex = c

End Sub

Sub parar()

Application.OnTime var, "color" , , False

End Sub
[RESUELTO] Color intermitente

por Francisco V. Mi May 15, 2013 11:25 am

Buenos dias.

Desearia saber si es posible, y como hacerlo, para poner un color intermitente en un formato condicional de una
casilla.
De esta manera resaltar un resultado de forma muy significada
ltima edicin por SLV-es el Mar May 21, 2013 5:14 pm, editado 2 veces en total
Razn: Titulo a minusculas
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: COLOR INTERMITENTE

por xiseme Mi May 15, 2013 12:25 pm

Un camino puede ser con formato condicional.


Supongamos creados dos estilos de celda estiloUNO y estiloDOS
Supongamos un un temporizador sin macros (ver en el enlace el porqu) en la celda A1
Entonces en Men Formato Formato condicional, elegir "La frmula es" y algo como
ESTILO(ESPAR(SEGUNDO(A1));"estiloUNO","estiloDOS") debera cambiar cada segundo.
Todo es mejorable, estamos dispuestos a mejorar. Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme

Mensajes: 1827
Registrado: Lun Nov 24, 2008 1:13 pm
A
r
r
i
b
a

Re: COLOR INTERMITENTE

por SLV-es Mi May 15, 2013 12:36 pm

Hola

He probado en formato condicional:


Condicin 1: La frmula es --> ESPAR( SEGUNDO( AHORA() ) ) --> CREAR UN ESTILO CON FONDO AMARILLO
Condicin 2: La frmula es --> ESIMPAR( SEGUNDO( AHORA() ) ) --> CREAR UN ESTILO CON FONDO ROJO

La idea era agregar despus un temporizador a la hoja para forzar el reclculo cada segundo y que parpadease la
celda, pero no funciona.
Ni siquiera pulsando F9 para que recalcule cada segundo.

Pero ms tarde he probado a hacer lo siguiente:


En la celda D1 he insertado la frmula =ESPAR( SEGUNDO( AHORA() ) )

He aplicado el formato condicional:


Condicin 1: La frmula es --> $Hoja1.$D$1 --> ESTILO CON FONDO AMARILLO
Condicin 1: La frmula es --> NO( $Hoja1.$D$1 ) --> ESTILO CON FONDO ROJO

Tampoco ha funcionado.

Finalmente, se me ha ocurrido poner paralelo a todas las celdas ( menos a las tres ltimas ) con formato
condicional una celda con la siguiente frmula
= SEGUNDO( AHORA() )

Cada vez que pulso F9 cambia el color de fondo de todas las celdas con formato condicional menos a las tres
ltimas.

Eso me ha hecho ver que para que se recalcule una fila, debe existir una celda en esa fila con frmulas.

Para agregar el temporizador, lee Temporizador en Calc

Espero te sirva

Adjunto ejemplo

ADJUNTOS

FormatoCondicionalIntermitente.ods

(9.46 KiB) 456 veces


+info en la web "no oficial" dedicada a OpenOffice en Espaol
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas

SLV-es
Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa

A
r
r
i
b
a

Re: COLOR INTERMITENTE

por SLV-es Mi May 15, 2013 12:36 pm

Jejejeje, de nuevo coincidimos xiseme y yo en el tiempo


+info en la web "no oficial" dedicada a OpenOffice en Espaol
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas

SLV-es

Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa

A
r
r
i
b
a

Re: COLOR INTERMITENTE

por Francisco V. Mi May 15, 2013 1:59 pm

Gracis, lo voy a probar y os comento


windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: COLOR INTERMITENTE

por Francisco V. Mi May 15, 2013 2:53 pm


Bueno.
Lo he probado, y la verdad no s lo que yo necesito.
El tema en concreto es una celda con un dato, que debe ser introducido al abrir la hoja. Queria que siempre y
cuando no se hubiera introducido, esta celda estubiera intermitente. Con vuestyros sabios consejos, que he
logrado hacer funcionar, no me sirve. Ya tengo un fichero vinculado, y el nuevo me causa problemas.
Hay otra posible solucin.

Gracias
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: COLOR INTERMITENTE

por SLV-es Mi May 15, 2013 3:24 pm

Hasta donde conozco, no existe otra posibilidad sin recurrir a macros.

Y si recurres a macros, considero que sera ms efectivo que al abrir el documento se compruebe si la celda est
vaca, y en ese caso, se muestre un aviso advirtiendo del hecho.
O incluso que muestre un dilogo para introducir el dato, y que no permita seguir si no se introduce, pero eso, ya
a tu gusto.

El hacer que una celda "parpadee" con un color intermitente, como ves, no es sencillo, y precisas de un
"temporizador".
Es normal pensar que es demasiado trabajo y complicacin para algo tan simple, pero es que no existe opcin
ms sencilla.

Si encuentras otra solucin, sera interesante que la compartas en este tema.

Saludos
+info en la web "no oficial" dedicada a OpenOffice en Espaol
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas

SLV-es

Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa

A
r
r
i
b
a

Re: COLOR INTERMITENTE

por Francisco V. Mi May 15, 2013 3:33 pm

Bien, seguir intentandolo, y si consigo algo mejor lo pasar.


windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por fornelasa Mi May 15, 2013 9:40 pm

Una posible opcion pudiera ser este archivo.


La macro dentro del archivo esta asociada al evento "Al activar documento" y tambien al evento "Al cambiar la
seleccion", el parpadeo de la celda termina en este caso hasta que la celda C3 es igual a 15 (lo anterior as se me
ocurri).

Tal vez nos sirva.

Saludos, Federico.

ADJUNTOS

Parpadeo1.ods

Parpadeo Celda

(8.92 KiB) 293 veces


lo 5.3.4 | aoo 4.1.3 | win 7/10
Un aplauso para todos los que luchan por proteger y promover la Web abierta!

fornelasa
Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Jue May 16, 2013 4:47 pm

Bueno, he encontrado algo que funciona correctamente en Excel

Sub alerta()
If Range("a1").Interior.ColorIndex = 3 Then
Range("a1").Interior.ColorIndex = 4
Else
Range("a1").Interior.ColorIndex = 3
End If
Application.OnTime Now + TimeValue("00:00:01"), "alerta"
End Sub
Es sencillo, pero como no se nada de visual, no funciona en Open. Hay solucin y convertir esta sencilla macro.
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por xiseme Jue May 16, 2013 7:06 pm

Si es cosa de macros, Calc no es Excel ni tiene porque serlo no parece que haya equivalente
a Application.OnTime

Parece que no has mirado (suficientemente al menos) el ejemplo de FORNELASA y qu hace su macro. Tiene
claves para cambiar el CellBackColor (fondo de celda). Si le unes Wait =1000 (tiempo en milisegundos) obtendrs
parpadeo ms lento.

Por otra parte el fichero vinculado ... no puede marcarse para actualizarlo cada segundo? (sin macros)
Todo es mejorable, estamos dispuestos a mejorar. Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme

Mensajes: 1827
Registrado: Lun Nov 24, 2008 1:13 pm
A
r
r
i
b
a

Re: Color intermitente

por fornelasa Jue May 16, 2013 7:31 pm

Hola...
Coincido con xiseme.
Partiremos de que la macro "Sub alerta()" no se dice a que evento se asigna en Excel, ok bien, por lo tanto
asumimos de momento que la corremos "manualmente".
Hasta aqui y en base a lo que se tiene en el ejemplo concreto de la macro, no tengo duda de que esta macro
hace lo mismo que la que mencionas de Excel.

CDIGO: SELECCIONAR TODO EXPANDIR VISTA

Sub Alerta()
Dim oCell As Object
oCell = ThisComponent.CurrentController.ActiveSheet.GetCellRangeByName("A1")
If oCell.CellBackColor = 16711680 then
oCell.CellBackColor = 2359075
Else
oCell.CellBackColor = 16711680
end if
wait 1
Call Alerta
end sub

Aunque a mi no me gusta esta caracteristica, no creo que Excel maneje bien este evento y ni Calc.

Saludos, Federico.

ADJUNTOS

Parpadeo1.ods

Parpadeo

(8.52 KiB) 163 veces


lo 5.3.4 | aoo 4.1.3 | win 7/10
Un aplauso para todos los que luchan por proteger y promover la Web abierta!

fornelasa

Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Vie May 17, 2013 7:48 am

Ok muchas gracia.
Ahpora entiendo bastannte bien la macro de FORNELASA .
Pregunto.
Como puedo saber que colores corresponden a los nmeros.
Igual que la instruccion oCell.CellBackColo, hay una instruccin para cambiar el color de la fuente.
Y siendo mas osado haciendo preguntas
Les puedo pasar a esta macro parametros para indicar diferentes colores, y/o diferentes direcciones de celda.
Resuelto a medias
Gracias
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Vie May 17, 2013 8:03 am

Ok, siguiendo con lo mio.


oCell.CellBackColor = RGB(255,0,0), da el rojo, y as los siguientes. Esto logrado
Que instruccin es para el texto
Gracias.
windows 7 y Openoffice 3.4
Francisco V.
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Vie May 17, 2013 8:31 am

Ok. ya estpara el texto


oCell.CharColor = RGb(255,0,0)
Bien, entendido.
Pregunto, esto podria ser como una funcion que al introducirlo en un formato condicional funcionara?
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Vie May 17, 2013 4:11 pm

Por si interesa, esta es una lista de colores con sus cdigos


windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por fornelasa Vie May 17, 2013 4:21 pm

Hola,

Pregunto, esto podria ser como una funcion que al introducirlo en un formato condicional funcionara?
Da la impresin que si se podra, si no con la funcion tal vez con la asignacin de la macro a un evento, podemos
ser mas especificos en este punto?

Saludos, Federico.
lo 5.3.4 | aoo 4.1.3 | win 7/10
Un aplauso para todos los que luchan por proteger y promover la Web abierta!

fornelasa

Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Vie May 17, 2013 10:29 pm

Bien. Interesante y muy buena colaboracion.


El tema es:
Al iniciar la hoja una celda tiene el valo 0 y parpadea en rojo para resaltar que deben introducir un valor. Este
valor esta entre 0 y 40.
Se entra el valor y la celda queda en formato estandard (blanco y negro)
Y ya esta.
Gracias
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por fornelasa Lun May 20, 2013 5:18 am


Hola...
Por ejemplo, entend:

Al abrir el archivo, en la hoja llamada Hoja1 la celda A1 tiene el valor 0 y parpadea en rojo para resaltar que deben
introducir un valor. Este valor esta entre > 0 y <= 40.
Se entra el valor y la celda queda en formato estndar (blanco y negro)
Y ya est.

Esperemos sea algo parecido a:

http://depositfiles.com/files/yelidnkyc

Saludos, Federico.
lo 5.3.4 | aoo 4.1.3 | win 7/10
Un aplauso para todos los que luchan por proteger y promover la Web abierta!

fornelasa

Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Lun May 20, 2013 8:59 am

Muchas gracias.
Resuelto en parte.
He hecho unos pequeos cambios, quedando:

CDIGO: SELECCIONAR TODO EXPANDIR VISTA

Sub Alerta()
dim document as object
dim dispatcher as object
dim args1(0) as new com.sun.star.beans.PropertyValue

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "Navigator"
args1(0).Value = true

dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args1())


args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args1())
'---------------------------------------------------------------------------------------
--------
Dim oCell As Object
Dim oDoc As Object
j=1000
oDoc = ThisComponent.CurrentController.ActiveSheet
oCell = oDoc.GetCellRangeByName("A1")
do until oCell.Value > 0 and oCell.Value <= 40
oCell.CellBackColor = RGB(255,0,0)
wait j
oCell.CellBackColor = RGB(255,255,0)
wait j
loop
oCell.CellBackColor = 16777215
end sub

Mi siguiente pregunta, para rizar el rizo es:


En este macro, siempre es en la celda A1, y unos valores en concreto. Si en la misma hoja lo quiero situar en
varias celdas, hay que escribir varas macros?, o se le pueden pasar parametros para situarlo en diferentes celdas.

Con esto quedaria completamente resuelto el problema, y creo que servir para muchos mas usuarios.

Gracias..
ltima edicin por SLV-es el Lun May 20, 2013 1:11 pm, editado 1 vez en total
Razn: Encerrar cdigo entre etiquetas CODE
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente


por fornelasa Lun May 20, 2013 4:13 pm

Hola...
De entrada suena a que se deberian escribir varias macros, una pregunta, sean las celdas que sean a que evento
de la hoja principalmenteque deben reaccionar tales celdas?
Al evento "al abrir documento"?
cada que se calculan formulas en la hoja?
cada que se cambia la seleccion de celda?

a cual? o a varios eventos?

Saludos, Federico.
lo 5.3.4 | aoo 4.1.3 | win 7/10
Un aplauso para todos los que luchan por proteger y promover la Web abierta!

fornelasa

Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a

Re: Color intermitente

por xiseme Mar May 21, 2013 12:27 am

Pues probando la macro a mi me da fallo.


Bien al abrir archivo, pero introduzco un valor en A1 y al cabo de un par de minutos se cierran. tanto AOO como
LibO.

Por lo que entiendo la macro es un bucle que se ejecuta permanentemente cuando los valores estn fuera de
rango. Para nicamente advertir de la falta de unos datos, me parece excesivo tener un proceso ms en
ejecucin. Incluso sera ms productivo reservar una fila para avisos que podra sofisticarse todo lo necesario.
xxprimerafilaAvisos.ods
(8.72 KiB) 140 veces
Todo es mejorable, estamos dispuestos a mejorar. Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme

Mensajes: 1827
Registrado: Lun Nov 24, 2008 1:13 pm
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Mar May 21, 2013 7:51 am

De acuerdo xiseme.
es cierto puede parecer un exceso, y la solucin del aviso es correcta.
Pero se me han cruzado las ideas y no cejare hasta lograr una celda cualquier con color intermitente hasta que lo
logre.
gracias
windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: Color intermitente

por SLV-es Mar May 21, 2013 12:43 pm

Lo tengo !!!!

Mtodo sin macros

En la celda G2 he insertado la frmula =ahora()


He renombrado la celda G2 y la he llamado Reloj
He guardado el documento.
En la celda G3 he insertado un vnculo mediante Insertar > Vincular con datos externos al propio documento,
reaReloj, y que actualice cada 1 segundos

Al la celda C2 les he aplicado el siguiente formato


condicional: Y($Hoja1.C2="";ESPAR(SEGUNDO($Hoja1.$G$2))), >nuevo estilo le he aplicado fondo rojo.

Y a parpadear, que es gerundio !!!! pero slo si est vaca.

Con la herramienta pincel puedo copiar el formato condicional a otras celdas, pero en cualquier celda de la fila
debo agregar una frmula del tipo =ahora() para que fuerce el reclculo de la fila - celda.
Adjunto ejemplo.

ADJUNTOS

Sin ttulo 1.ods

(8.8 KiB) 370 veces


+info en la web "no oficial" dedicada a OpenOffice en Espaol
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas

SLV-es

Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa

A
r
r
i
b
a

Re: Color intermitente

por xiseme Mar May 21, 2013 4:15 pm

O de cmo 2+2=4:
+ Una manera diferente**(1) de reenfocar el asunto (vincular s pero a uno mismo)
+ Saber/descubrir que hay que forzar el reclculo de cada fila
= solucin **(2)

Por aadir algo, de convenir se podra aprovechar la necesidad de poner una frmula en la fila de la celda
parpadeante y combinar en ella las condiciones tal que
=AHORA()*O(C3<=0;C3>40) para en el formato condicional de C3 poner slo =Y($A3;ESPAR(SEGUNDO(Reloj)))

Lo que me viene "al pelo" para repetir mis mantras:


- (1) No necesariamente nuevo, sino de manera diferente ("Non nova, sed nove")
- (2) Mejor simple que complejo
ltima edicin por xiseme el Mar May 21, 2013 11:45 pm, editado 1 vez en total
Todo es mejorable, estamos dispuestos a mejorar. Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme

Mensajes: 1827
Registrado: Lun Nov 24, 2008 1:13 pm
A
r
r
i
b
a

Re: Color intermitente

por Francisco V. Mar May 21, 2013 5:04 pm

[RESUELTO]
Por no ser menos, y partiendo de tu hoja, he hecho lo siguiente:
1.- le he puesto un formato inicial en fondo amarillo y texto en rojo
2.- en el formato condicional de la celda he puesto dos condiciones talcual la primera el valor distinto de 0 estilo
predetrminado. La segunda condicion la formula es ESPAR(SEGUNDO(AHORA()))
Conseguimos que funcione con cualquier valor (en este caso mientras sea 0), y al introducir un valor queda en el
formato predeterminado.
Ah, y no necesito tener la celda con tener en la misma fila la funcion ahora().
Funciona.
Gracias a todos, y en especial a ti xiseme por el tiempo que has empleado

ADJUNTOS

intermitente_condicional.ods

(9.36 KiB) 245 veces


windows 7 y Openoffice 3.4
Francisco V.

Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a

Re: [RESUELTO] Color intermitente

por fornelasa Mar May 21, 2013 10:40 pm

Hola a todos...

Muy muy interesante la solucion de SLV-es

xiseme dice:

- (1) No necesariamente nuevo, sino de manera diferente ("Non nova, sed nova")
- (2) Mejor simple que complejo
Me quedo tambien con esos mantras , me gustaron, espero no haya pago de regalias

Al abrir este archivo automaticamente se evaluan 3 celdas y empiezan a parpadear mientras las celdas tengan el
valor 0 (con una macro que en este caso es mas complejo que lo mostrado por SLV-es).

Saludos, Federico.

ADJUNTOS

ParpadeoCeldas.ods

Parpadeo celdas

(9.2 KiB) 232 veces


lo 5.3.4 | aoo 4.1.3 | win 7/10
Un aplauso para todos los que luchan por proteger y promover la Web abierta!

fornelasa

Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a

Re: [RESUELTO] Color intermitente

por xiseme Mar May 21, 2013 11:44 pm

Sin macros, ... con macros y ... con python (Mauricio en otro hilo): Ms que solucionado RE-solucionado por

triplicado!

Esta vez la macro, que entiendo casi idntica a la anterior, no me cierra Calc.
Es de suponer porque no est asignada a ningn evento de la hoja, como antes.

Regalas, regalas, ... lo que no es mo lo regalo


El autor del la cita en latn (ya la he corregido) es desconocido y al ser de unos 2000 aos, seguramente est
muerto.
Lo de sencillo es de los de python que son muy "cool"? "fashion"? As que ni caso Seguro que tambin
tomaron algo "prestado" de otros.
Todo es mejorable, estamos dispuestos a mejorar. Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.

Cambiar color texto o fondo parpadeante


Hay alguna forma de crear un texto o fondo de celda que cambie de color automticamente de
forma parpadeante, como una forma de " publucidad ", me explico que cada 1 segundo o menos
cambie el color del texto o el fondo como para destacar un texto de la planilla...
SEGUIR

1 RESPUESTA
RESPUESTA DE ABRAHAM VALENCIA
1

Abraham Valencia, Experto en ofimatica, desarrollador de aplicaciones en VB y VB


Ejemplo:
Sub Reloj()
Application.OnTime Now + TimeValue("00:00:01"), "Colorcelda", schedule:=True
End Sub
Sub Colorcelda()
Range("A1").Interior.ColorIndex = Round(Rnd * 10, 0)
Reloj
End Sub
Sub cancelar()
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="Colorcelda", schedule:=False
End Sub
Corre la macro "Reloj" para que empiece el cambio de color de una celda, y la macro "cancelar"
para que se detenga el cambio de color. OJO, si deseas que sea en menos de un segundo, pues,
debes recurrir a funciones del API de windows
Abraham

Ejecutar macro al cambiar el valor de celda


A ver si alguien me puede ayudar por favor, que me estoy volviendo loca!
Estoy intentando hacer una macro para que se ejecute otra cada vez que cambia la celda A1. El
caso es que A1 est formulado, y lo que quiero es que se ejecute la macro cada vez que el
resultado de esa frmula cambie. Os escribo la macro que he preparado, pero slo me funciona si
cambio la celda A1 a mano.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target. Address = "$A$1" Then
If Range("c6"). Value = 0 Then
Range("c8"). Value = Value
Else
Range("c8"). Value = Range("c6"). Value
End If
End Sub
Muchas gracias. Edurne.
SEGUIR

1 RESPUESTA
RESPUESTA DE JOS SAL MNDEZ ALONSO
1

Jos Sal Mndez Alonso, Programacin Avanzada en Visual Basic, VBA, Modelo de Objetos de...
Que te parece si en lugar de monitorear la celda A1 monitoreas las celdas que alimentan la frmula
de esa celda y cuando alguna de ellas cambie re-escribes la frmula de la celda A1 mediante
la MACRO de esa manera lograras lo dems.
Por Ejemplo:
Private Sub Workbook_SheetChange(ByVal Target As Range)
If Target.Address = "$B$1" Or Target.Address = "$C$1" Or Target.Address = "$D$1" Then
Range("A1").FormulaR1C1 = "=SUM(RC[1]:RC[3])"
ElseIf Target.Address = "$A$1" Then
If Range("c6").Value = 0 Then
Range("c8").Value = Range("A1").Value
Else
Range("c8").Value = Range("c6").Value
End If
End If
End Sub

el 27 nov. 09

No entiendo muy bien la macro que me propones (soy un poco nueva en esto), pero para vincular la
ejecucin de la macro a la celda de origen mi problema es que lo que hace que todo cambia es una
celda donde se permite seleccionar de una lista, pero est en otra hoja del mismo libro. Me explico,
imagnate que tengo la lista de validacin en la celda B1 de la hoja 1, y la macro se tiene que
ejecutar en la hoja 2. Cmo tendra que modificar la macro que yo estoy utilizando? Supongo que
tendr que pegarla en el workbook y a la hora de especificar el cambio mencionar la hoja, pero no
s como hacerlo. Me podras ayudar? Muchas gracias
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$b$2" Then (pero est en la hoja 1)
If Range("c6").Value = 0 Then (pero est en la hoja 2)
Range("c8").Value = Value
Else
Range("c8").Value = Range("c6").Value
End If
End If

el 28 nov. 09

Porque no exploras esta opcin


En el evento SheetChange del Objeto Workbook puedes pasar como parmetro la hoja que
contiene a la celda que cambi, actualmente solo estas capturando la celda que cambi.
Prueba con este ejemplo que lo que hace es devolverte la referencia total de la celda que cambi
incluyendo la hoja a la que pertenece.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox Sh.Name & "!" & Target.AddressLocal
End Sub

Formato condicional actualizable.-


Tengo una formulario al cual me extrae de una base de datos, fechas de vencimiento al cual he
logrado que en el textbox que las trae me refleje el color rojo con el cual esta en la base de datos, la
base de datos esta con un formato condicional el cual cuando hay una fecha vencida menor que la
fecha actual esta cambia el color avisando de su vencimiento, la cuestin es que cuando actualizo
con el formulario las fecha y vuelvo a la planilla base esta no cambia el formato y el formato
condiciona no se ejecuta ni actualiza el color de la fecha, por lo tanto la idea es que al momento de
actualizar la base de datos con el formulario echo en visual de excel 2010, al salir de este me
cambien el color de las fechas en las celdas respectivas.

SEGUIR

1 RESPUESTA

Dante Amor
3.590.100 pts. Si me amas, siempre voy a estar en tu corazn; si me...
el 18 dic. 12
Tienes que cambiar el formato del textbox, ya que en el textbox tienes un texto, lo tienes que
convertir a fecha.

Utiliza las siguientes lneas

Range("D5") = Format(TextBox1.Value, "mm/dd/yyyy")


TextBox1 = Range("D5")

Lo anterior es suponiendo que en D5 tienes la celda con el formato condicional y que el textbox se
llama texbox1, cambia estos datos por tus datos reales.

Prueba y me comentas.
Saludos. Dam
Si es lo que necesitas.

el 18 dic. 12

Hola disculpa si es mas o menos lo que estaba buscando, pero no es mi caso de referenciar hacia
una celda especifica, te dejo el cdigo para que lo analices.:

Option Explicit
Dim rango As Range
Private Sub CommandButton1_Click()
If ComboBox1 = "" Then
MsgBox "Ingresar Apellido y Nombre completo para buscar sus referencias
by: claudiosantana_sebastian@hotmail.com", vbOKOnly + vbInformation, "AVISO"
ComboBox1.SetFocus
Exit Sub
End If
Set rango = Range("A:A").Find(What:=ComboBox1, _
LookAt:=xlWhole, LookIn:=xlValues)
If rango Is Nothing Then
MsgBox "El dato no existe-- by: claudiosantana_sebastian@hotmail.com", vbOKOnly +
vbInformation, "AVISO"
ComboBox1 = "": ComboBox1.SetFocus
Exit Sub
Else
TextBox2 = Range("B" & rango.Row)
TextBox3 = Range("C" & rango.Row)
TextBox4 = Range("D" & rango.Row)
TextBox5 = Range("E" & rango.Row)
TextBox6 = Range("N" & rango.Row)
TextBox7 = Range("M" & rango.Row)
TextBox8 = Range("H" & rango.Row)
TextBox9 = Range("O" & rango.Row)
TextBox10 = Range("P" & rango.Row)
TextBox11 = Range("Q" & rango.Row)
TextBox12 = Range("L" & rango.Row)
TextBox13 = Range("R" & rango.Row)
TextBox14 = Range("S" & rango.Row)
TextBox15 = Range("U" & rango.Row)
TextBox16 = Range("T" & rango.Row)
TextBox17 = Range("V" & rango.Row)
TextBox18 = Range("W" & rango.Row)
TextBox21 = Range("X" & rango.Row)
TextBox22 = Range("Y" & rango.Row)
TextBox23 = Range("z" & rango.Row)
End If
End Sub
Private Sub CommandButton2_Click()
Dim ctr As Control
If rango Is Nothing Then
MsgBox "Busca un dato antes de editar-- by:claudiosantana_sebastian@hotmail.com", vbOKOnly +
vbInformation, "AVISO"
ComboBox1.SetFocus
Exit Sub
End If
If TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then
MsgBox "No dejar ningn campo en vaco-- by:claudiosantana_sebastian@hotmail.com", vbOKOnly
+ vbInformation, "AVISO"
Exit Sub
End If
Range("B" & rango.Row) = TextBox2
Range("C" & rango.Row) = TextBox3
Range("D" & rango.Row) = TextBox4
Range("E" & rango.Row) = TextBox5
Range("N" & rango.Row) = TextBox6
Range("M" & rango.Row) = TextBox7
Range("H" & rango.Row) = TextBox8
Range("O" & rango.Row) = TextBox9
Range("P" & rango.Row) = TextBox10
Range("Q" & rango.Row) = TextBox11
Range("L" & rango.Row) = TextBox12
Range("R" & rango.Row) = TextBox13
Range("S" & rango.Row) = TextBox14
Range("U" & rango.Row) = TextBox15
Range("T" & rango.Row) = TextBox16
Range("V" & rango.Row) = TextBox17
Range("W" & rango.Row) = TextBox18
Range("X" & rango.Row) = TextBox21
Range("Y" & rango.Row) = TextBox22
Range("z" & rango.Row) = TextBox23
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then
ctr = ""
End If
Next ctr
ComboBox1.SetFocus
ComboBox1 = Empty
MsgBox "Operacin realizada con xito! - by:claudiosantana_sebastian@hotmail.com", vbOKOnly +
vbInformation, "AVISO"
Set ctr = Nothing
Set rango = Nothing
End Sub
Private Sub CommandButton3_Click()
Dim strfila$, ctr As Control
If ComboBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then
MsgBox "Si desea ingresar un registro nuevo No dejar ningn campo en blanco--
by: claudiosantana_sebastian@hotmail.com", vbOKOnly + vbInformation, "AVISO"
ComboBox1.SetFocus
Exit Sub
End If
Set rango = Range("A:A").Find(What:=ComboBox1, _
LookAt:=xlWhole, LookIn:=xlValues)
If Not rango Is Nothing Then
MsgBox "El dato ya existe-- by: claudiosantana_sebastian@hotmail.com", vbOKOnly +
vbInformation, "AVISO"
ComboBox1.SetFocus
Exit Sub
End If
strfila$ = [B65536].End(xlUp).Offset(1, 0).Row
Range("A" & strfila$) = ComboBox1
Range("B" & strfila$) = TextBox2
Range("C" & strfila$) = TextBox3
Range("D" & strfila$) = TextBox4
Range("E" & strfila$) = TextBox5
Range("N" & strfila$) = TextBox6
Range("M" & strfila$) = TextBox7
Range("H" & strfila$) = TextBox8
Range("O" & strfila$) = TextBox9
Range("P" & strfila$) = TextBox10
Range("Q" & strfila$) = TextBox11
Range("L" & strfila$) = TextBox12
Range("R" & strfila$) = TextBox13
Range("S" & strfila$) = TextBox14
Range("U" & strfila$) = TextBox15
Range("T" & strfila$) = TextBox16
Range("V" & strfila$) = TextBox17
Range("W" & strfila$) = TextBox18
Range("X" & strfila$) = TextBox21
Range("Y" & strfila$) = TextBox22
Range("z" & strfila$) = TextBox23
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.ComboBox Then
ctr = ""
End If
Next ctr
Range("A" & strfila$ & ":A" & strfila$).HorizontalAlignment = xlCenter
ComboBox1.SetFocus
ComboBox1 = Empty
End Sub
Private Sub CommandButton4_Click()
Dim respuesta As Integer, ctr As Control
If rango Is Nothing Then
MsgBox "Busca el dato a eliminar-- by:claudiosantana_sebastian@hotmail.com", vbOKOnly +
vbInformation, "AVISO"
ComboBox1.SetFocus
Exit Sub
End If
respuesta = MsgBox("Estas seguro que deseas eliminar el registro elegido?", vbCritical +
vbOKCancel, "AVISO")
respuesta = MsgBox("Aun puedes calcelar la operacion, deseas continuar??", vbCritical +
vbOKCancel, "AVISO")
If respuesta = vbOK Then
Cells(rango.Row, rango.Column).EntireRow.Delete
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then
ctr = ""
End If
Next ctr
ComboBox1.SetFocus
ComboBox1 = Empty
Exit Sub
End If
MsgBox "Operacin cancelada-- by:claudiosantana_sebastian@hotmail.com", vbOKOnly +
vbInformation, "AVISO"
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then
ctr = ""
End If
Next ctr
ComboBox1.SetFocus
ComboBox1 = Empty
End Sub
Private Sub ComboBox1_Change()
End Sub
Private Sub TextBox10_Change()
End Sub
Private Sub TextBox11_Change()
End Sub
Private Sub TextBox13_Change()
End Sub
Private Sub TextBox14_Change()
Me.TextBox14.ForeColor = ActiveCell.Font.Color
End Sub
Private Sub TextBox15_Change()
End Sub
Private Sub TextBox16_Change()
End Sub
Private Sub TextBox17_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub TextBox21_Change()
End Sub
Private Sub TextBox22_Change()
Me.TextBox22.ForeColor = ActiveCell.Font.Color
End Sub
Private Sub TextBox23_Change()
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub TextBox4_Change()
End Sub
Private Sub TextBox6_Change()
End Sub
Private Sub TextBox7_Change()
End Sub
Private Sub TextBox9_Change()
End Sub

Disculpa por lo extenso es que sin no no me vas a entender, si presizars que te deje el archivo
avisame y lo hago , gracias por la celeridad de las respuestas..

el 18 dic. 12

Pero en qu parte tienes el problema?


En tu pregunta inicial comentas: "la idea es que al momento de actualizar la base de datos con el
formulario "

En el ejemplo que te envi, tienes que modificar el formato del textbox al momento que lo pasas a tu
base.

Tienes 23 textbox, y no me dices cul es el que tiene el problema de la fecha.

El formato condicional de la celda no se activa, porque lo que ests poniendo es un texto, por eso,
antes de ponerlo, lo tienes que formatear a fecha.

Espero tus comentarios.

Si quieres que adapte el cdigo, necesito, adems de tu archivo, que me expliques cmo funciona
tu macro y exactamente en qu parte tienes el problema.

Saludos. Dam

el 19 dic. 12

Hola de nuevo, aca te dejo el archivo para que lo veas, sobre la columna de mails esta el botn que
llama a la macro , en el textbox vencimientos , de todos los vencimientos es en donde quiero que
me salga el dato real , si esta vencido en rojo, y si esta vigente( apto) el formato condicional de la
hoja funcione como debera. espero ser claro, mil disculpas.-

http://www.4shared.com/rar/GD8i3WyE/PLANILLA_PRUBa_01.html

el 20 dic. 12

La liga que me enviaste, me marca error y no puedo bajar el archivo, puedes poner nuevamente el
enlace o tambin puedes enviar el archivo a mi correo.

Saludos. Dam

el 20 dic. 12

Hola te dejo los archivos, espero que me puedas ayudar en esto, mi cabeza no da mas, je je
gracias.-

http://www.mediafire.com/?jk0k59dm19knkje,m32judac1oersa5
el 20 dic. 12

Me sigue enviando error la liga.

Saludos. Dam

Macro que permita aplicar color a celdas


Necesitara me ayudaras a crear una macro que me permita aplicar color a celdas mediante un
formato condicional.
El rango a cubrir es "D10 a EW100"
SEGUIR

1 RESPUESTA
RESPUESTA DE TAVOPZ
1

tavopz, Conozco un poco acerca de Excel (frmulas y VBA), pregunta y si...


No entiendo tu pregunta. Necesitas aplicar formato condicional mediante una macro? No suena
muy lgico.
Quizs si me cuentas qu resultado deseas obtener.

el 19 mar. 08

Tavopz,
En el rango d10 a ew100 tengo detallados diferentes datos (nmeros del 1 al 20). Y necesito
colorear las celdas de acuerdo al dato que tengan. Es decir, si en la celda dice 1 que la pinte de
verde, si dice 2 de azul... y as sucesivamente
El formato condicional del excel, admite solo tres variables. Por lo que, necesitaria crear una macro
que admitiera como mnimo 20 variables.
A otra consultante la ayudaste con esta macro...
c = InputBox("Indique la Columna")
a = InputBox("Desde")
b = InputBox("Hasta")
For x = Int(a) To Int(b)
Range(c & LTrim(Str(x))).Select
If Selection.Value = "1" Then
With Selection.Interior
.ColorIndex = 17
.Pattern = xlSolid
End With
Else
If Selection.Value = "2" Then
With Selection.Interior
.ColorIndex = 18
.Pattern = xlSolid
End With
Else
If Selection.Value = "3" Then
With Selection.Interior
.ColorIndex = 19
.Pattern = xlSolid
End With
Else
If Selection.Value = "4" Then
With Selection.Interior
.ColorIndex = 20
.Pattern = xlSolid
End With
Else
If Selection.Value = "5" Then
With Selection.Interior
.ColorIndex = 21
.Pattern = xlSolid
End With
Else
If Selection.Value = "6" Then
With Selection.Interior
.ColorIndex = 22
.Pattern = xlSolid
End With
Else
If Selection.Value = "7" Then
With Selection.Interior
.ColorIndex = 23
.Pattern = xlSolid
End With
Else
If Selection.Value = "8" Then
With Selection.Interior
.ColorIndex = 24
.Pattern = xlSolid
End With
Else
If Selection.Value = "9" Then
With Selection.Interior
.ColorIndex = 25
.Pattern = xlSolid
End With
Else
If Selection.Value = "10" Then
With Selection.Interior
.ColorIndex = 26
.Pattern = xlSolid
End With
Else
If Selection.Value = "11" Then
With Selection.Interior
.ColorIndex = 27
.Pattern = xlSolid
End With
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next x
End Sub
Esta selecciona una columna... yo necesito la misma pero que tome las columnas desde la "D"
hasta EW".
Espero haber sido mas clara..
Muchas gracias por tu atencin.
Mirian

el 19 mar. 08

Quizs algo como esto te sirva:


http://es.geocities.com/webtavopz/Files/coloresceldas.xls
Puedes cambiar la macro insertando el rango que deseas y completar con el resto de colores.

Una alerta con sonido


Necesito una alerta de vencimiento de facturas con sonido, cosa que cuando estn por vencer se
emita un sonido de aviso y valla cambiando de color segn los das de retrasos de estas.
SEGUIR

1 RESPUESTA
RESPUESTA DE DANTE AMOR
1

Dante Amor, Si me amas, siempre voy a estar en tu corazn; si me odias,...


Te envo una macro, Para que veas como funciona, crea una hoja de excel, escribe las siguientes
fechas en las columnas
A|B
13-Sep 13-Sep
11-Sep 13-Sep
12-Sep 13-Sep
13-Sep 13-Sep
Lo que hace la macro es lo siguiente:
Al captura la fecha en A1 y si es mayor que la fecha de B1, enva un sonido
Al capturar la fecha en A2 y si es menor a la fecha de B2 por 2 das, le cambia el color a naranja
Al capturar la fecha en A3 y si es menor a la fecha de B3 por 1 da, le cambia el color a amarillo
Al capturar la fecha en A4 y si es igual a la fecha de B4, le cambia el color a rojo
Para cambiar de lugar la fecha en la macro actualiza los valores A y B, con los de tu hoja.
Presiona alt+F11, para crear una macro, en el panel del lado derecho pega la siguiente macro:
Private Sub Worksheet_Change(ByVal Target As Range)
'Creada por DAM
If Range("A1").Value > Range("B1").Value Then
Beep
End If
If Range("A2").Value + 2 = Range("B2").Value Then
Range("A2").Interior.ColorIndex = 44
Else
Range("A2").Interior.ColorIndex = 0
End If
If Range("A3").Value + 1 = Range("B3").Value Then
Range("A3").Interior.ColorIndex = 27
Else
Range("A3").Interior.ColorIndex = 0
End If
If Range("A4").Value = Range("B4").Value Then
Range("A4").Interior.ColorIndex = 3
Else
Range("A4").Interior.ColorIndex = 0
End If
End Sub

Macro para hacer producir un ruido o pitido al


cumplirse una condicin.
Un sin fin el excel de nuevo te pido otro favor, necesito agregar a la macro If then o If End If una
lnea para que, cuando se cumpla la condicin, a la vez que genera el aviso a travs de la ventana
MsgBox (Tarjeta Modificada), produzca adems por dos o tres segundos un ruido o pitido. De
nuevo agradezco tus aportes para y espero ya la conclusin este trabajito.

SEGUIR

1 RESPUESTA

Dante Amor
3.590.100 pts. Si me amas, siempre voy a estar en tu corazn; si me...
el 17 feb. 13
Para producir un sonido solamente escribe

Beep

Ahora si quieres que suene ms tiempo, puedes poner una cancin o un sonido en mp3 o wav que
tengas, puede ser cualquier cancin y lo pones en el siguiente cdigo

Private Declare Function mciExecute Lib "winmm.dll" (ByVal Comando As String) As Long
Sub sonar()
If Range("A5") = "" Then 'condicin para entrar al sonido
mciExecute "play C:\mygirl.mp3" 'cambiar mygirl.mp3 por tu sonido
Application.OnTime Now + TimeValue("00:00:05"), "para", False 'En 5 segundos se detiene
End If
End Sub
Sub para()
mciExecute "Stop C:\mygirl.mp3"
End Sub

Saludos. Dam
Si es lo que necesitas.

el 17 feb. 13

Hola Dam Gracias por tu pronta respuesta, te comento, coloque la macro que me enviaste en el
modulo 9, en el cual la ejecuto en forma directa y cumple con todos los requisitos; despus la
enlac con un Call sonar al cdigo correspondiente que tambin funciona bien, solo que aqu no
cumple con el tiempo de duracin de los 5 segundos establecidos (de momento es una cancin de 3
minutos, despus buscar algn ruido); le estuve buscando pero como t sabes, no tengo para
todos los detalles, te pido de nuevo me apoyes en este detallito de hacerla cumplir con lo que se le
ordena Muchas gracias de nuevo.

el 17 feb. 13

Cambia el parmetro de TimeValue("00:00:05"), cambia el 5 por 6 7 10, lo que pasa es que hay
un tiempo en lo que se carga el software que hace sonar la cancin, entonces debers buscar cul
es el nmero adecuado de segundos.

Nota:no todas las canciones se ejecutan con este mtodo, pero hay algunas que si.

Saludos. Dam

el 19 feb. 13

Hola Dam... Muchas gracias por todo, concluido el trabajo, pero me queda una duda, <otra
pregunta> no se si puedas responder, porque si es exactamente la misma macro en excel 2003 el
focus se posiciona en el List Box y en el excel 2007 se posiciona correctamente en el TextBox..
Gracias por todo.. y mucha suerte..
Toms Tutorials For Excel: Deleting
Duplicate Records
by Tom Urtis

Toms Tutorials For Excel: Deleting Duplicate Records


When you have a list of data, sometimes it is not enough to simply delete rows with duplicated information based only on
the items in one column. Multi-column lists can have duplicated records based on the fact that every item in every
column of a rows data matches that of another rows entire data, cell for cell. In those cases, you need to compare a
concatenated (combined) string of each records (rows) data, and compare that to the concatenated strings of all the other
rows.

Take a close look at this Before and After picture. In the original list, all the items in rows 5 and 7 match, as do all the
items in rows 3 and 10. This is a short list for demonstration purposes. If your list were a couple hundred thousand rows
deep, such as an annual list of bank transactions or department store purchases, you would need a fast and easy way to
delete duplicated records. The macro that follows the picture is one way to do the job. The comments in green explain
each step.
Sub DeletingDuplicateRecords()
'Turn off ScreenUpdating to speed up the macro.
Application.ScreenUpdating = False
'Declare a range variable for the helper column being used.
Dim FilterRange As Range
'Define the range variables dynamic range.
Set FilterRange = Range("E1:E" & Cells(Rows.Count, 1).End(xlUp).Row)
'For efficiency, open a With structure for the FilterRange variable.
With FilterRange
'Enter the formula
'=SUMPRODUCT(($A$1:$A1=$A1)*($B$1:$B1=$B1)*($C$1:$C1=$C1)*($D$1:$D1=$D1))>1
'in all cells in column E (the helper column) that returns either TRUE
'if the record is a duplicate of a previous one, or FALSE if the record
'is unique among the records in all previous rows in the list.
.FormulaR1C1 = _
"=SUMPRODUCT((R1C1:RC1=RC1)*(R1C2:RC2=RC2)*(R1C3:RC3=RC3)*(R1C4:RC4=RC4))>1"
'Turn the formulas into static values because they will be filtered,
'and maybe deleted if any return TRUE.
.Value = .Value
'AutoFilter the helper column for TRUE.
.AutoFilter Field:=1, Criteria1:="TRUE"
'Error bypass in case no TRUEs exist in the helper column.
On Error Resume Next
'This next line resizes the FilterRange variable to exclude the first row.
'Then, it deletes all visible filtered rows, abbreviated by SpecialCells
'constant number 12.
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(12).EntireRow.Delete
'Clear the Error object in case a run time error would have occurred,
'that is, if no TRUEs existed in the helper column to be deleted.
Err.Clear
'Close the With structure for the FilterRange variable object.
End With
'Exit (stop using) AutoFilter.
ActiveSheet.AutoFilterMode = False
'Clear all helper values (there would only be FALSEs at this moment).
'Note that Columns(5) means column E which is the fifth column from the left
'on a standard Excel spreadsheet.
Columns(5).Clear
'Clear the range object variable to restore system memory.
Set FilterRange = Nothing
'Turn ScreenUpdating back on.
Application.ScreenUpdating = True
End Sub

Cambiar color texto o fondo parpadeante


Hay alguna forma de crear un texto o fondo de celda que cambie de color automticamente de
forma parpadeante, como una forma de " publucidad ", me explico que cada 1 segundo o menos
cambie el color del texto o el fondo como para destacar un texto de la planilla...
SEGUIR

1 RESPUESTA
RESPUESTA DE ABRAHAM VALENCIA
1

Abraham Valencia, Experto en ofimatica, desarrollador de aplicaciones en VB y VB


Ejemplo:
Sub Reloj()
Application.OnTime Now + TimeValue("00:00:01"), "Colorcelda", schedule:=True
End Sub
Sub Colorcelda()
Range("A1").Interior.ColorIndex = Round(Rnd * 10, 0)
Reloj
End Sub
Sub cancelar()
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="Colorcelda", schedule:=False
End Sub
Corre la macro "Reloj" para que empiece el cambio de color de una celda, y la macro "cancelar"
para que se detenga el cambio de color. OJO, si deseas que sea en menos de un segundo, pues,
debes recurrir a funciones del API de windows
Abraham

Cmo fijar la hora en una celda con excel


Cmo puedo fijar la hora en una celda con excel, de modo que al introducir un dato en una celda me
aparezca la hora en que se introdujo y al introducir otro dato en otra celda aparezca la nueva hora
sin modificar la primera, es decir que las horas no cambien al introducir otras horas en otras celdas.
SEGUIR

1 RESPUESTA
RESPUESTA DE PROZAC
1

prozac, Pedaleando se aprende a montar en bici


Entiendo que quieres ir manteniendo las horas a las que cambias celdas. Para ello hay que hacer
uso del evento Worksheet_Change y a lo mejor tambin de la funcin Intesect. Pero debes primero
explicar qu celdas pueden cambiar (cualquiera de la hoja o solo determinadas?) Y en que celdas
quieres conservar las horas (en la misma hoja, en la celda equivalente de otra hoja, en una fila o
columna determinada...?).

Reloj que no se detiene


Este cdigo
Private Sub cmdCierraApli_Click() 'cierra formulario
' ActiveWorkbook.Save 'Guarda posibles cambios de datos
If MsgBox("Ests seguro que quieres cerrar?", vbYesNo) = vbYes Then 'mensage para salir
Unload Me
Else
Call Detener_reloj '"LLamado" a rutina que detiene el OnTime
End If
Sheets(1).Select
End Sub
Ya hice casi lo imposible dentro de mis posibilidades (que son muy pocas en esto de programacin)
Funciona bien si quito el reloj (Call)
Funciona bien si dejo el Call y quito el If MsgBox y End IF del msgbox y el Else del Call.
As tal como lo ves funciona PEEEEROOO el reloj no se detiene y es molesto para escribir y
programar porque me saca de frente el formulario.
Cmo hacer esto mismo pero que me detenga el reloj?
Ver mapa
SEGUIR

1 RESPUESTA

neicos
28.475 pts. Analista de sistemas y Programador en:...
el 16 nov. 10
Para intentar ayudarte, podras ponerme el cdigo de la rutina del reloj? O del que detiene?

el 16 nov. 10

Todo el cdigo delreloj


En el modulo
--------------------------------------------
Option Explicit
Sub Tiempo()
'Mediante esta instruccion "llamamos" a "Actualizarreloj" para volver a _
actualzizar el Label con la hora
Application.OnTime Now + TimeValue("00:00:01"), _
Procedure:="Actualizarreloj", _
Schedule:=True
End Sub
Sub Actualizarreloj()
'Coloca la hora en el Label del UserForm
Formulario.LabHora = Time
'"Llama a la rutina que cada 01 segundo "llama" a "Actualizarreloj" para volver a _
actualzizar el Label con la hora
Call Tiempo
End Sub
Sub Detener_reloj()
'Detiene el "OnTime"
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="Actualizarreloj", _
Schedule:=False
End Sub
-------------------------------------------------
En codigo del formulario
Private Sub cmdSalir_Click()
'' ActiveWorkbook.Save 'Guarda posibles cambios de datos
'If MsgBox("Ests seguro que quieres cerrar?", vbYesNo) = vbYes Then 'mensage para salir
Unload Me
Call Detener_reloj '"LLamado" a rutina que detiene el OnTime
Sheets(1).Select
'Else
' End If
End Sub
----------------------------------------
Por qu en el objecto cmdSalir? Para que cuando cierre el formulario, se detenga el reloj

el 16 nov. 10

El evento OnTime de excel es bastante inestable y no suele controlarse bien a veces, de todas
formas, intenta detener el contador con esta instruccin, en vez de esta:
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="Actualizarreloj", _
Schedule:=False
Poner esta:
Application.OnTime Now + TimeValue("00:00:01"), "Actualizarreloj", , False
Las dos comas van as.
Espero que te sirva. Si no funciona as, plantate de buscar un timer, ese evento que usas no est
muy bien controlado por el programa.

el 16 nov. 10

Me da error esa linea, ahora bien.


Mi problema es el que menciono arriba, el cierre del formulario (aplicacin) con mensaje. Agradezco
si posible, releer el texto.
Si no se puede pues, no se puede, nadie se morir por eso. Entiendo que algunas veces se
presentan cangrejos de difcil solucin, para mi es dificilsimo por mi capacidad en la materia.
Me dices si finalizo el tema, aun tienes otro mio je je

el 17 nov. 10

No pretenda cerrar el post amigo, si no que si no se solucionaba, tendra yo que descartar el post y
que otra persona cogiera su duda.
En un principio la forma de cancelar el timer est bien, aqu hay un fallo que no me haba percatado
antes, no se cual es la funcin que pretende que haga lo que desea realizar.
Qu cundo le diga que si, salga del formulario? Y si le dice que no que siga el timer
normalmente y no cierra el formulario?
Pues bien, si desea salir al darle a si, aunque haga un Unload, tiene que detener el reloj primero, ya
que es un evento de Excel y hace una rellamada a esa macro, as que antes del Unload me, haga
una llamada a detener el reloj.
Por otro lado al decirle que no usted tiene puesto que haga una parada del timer... no entiendo lo
que pretende hacer al darle al botn cerrar. O puede estar ah el error?

el 17 nov. 10

Hol amigo.
Como puedes ver, esta ubicado el Call en el botn de cerrar la Aplicacin (formulario)
Si le dices Si (cierra), cierra el formulario y que se dentenga el reloj
Si te equivocas de botn y le dices NOOOOOOOO, que se mantenga abierto el formulario y el reloj
en funcionamiento

el 17 nov. 10

Hice el cambio ya repetido para cerciorarme mejor de su resultado y tambin ejecutando el


mensaje(msgbox).
Private Sub cmdSalir_Click()
'' ActiveWorkbook.Save 'Guarda posibles cambios de datos
If MsgBox("Ests seguro que quieres cerrar?", vbYesNo) = vbYes Then 'mensage para salir
Call Detener_reloj '"LLamado" a rutina que detiene el OnTime
Unload Me
Sheets(1).Select
Else
End If
End Sub
Sin el msgbox funciona bien como dije anteriormente, sea antes del unload o despus, si pongo el
msgbox, me da error 1004 en tiempo de ejecucin y es en este cdigo
Sub Detener_reloj()
'Detiene el "OnTime"
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="Actualizarreloj", _
Schedule:=False
End Sub

el 17 nov. 10

Efectivamente, te muestra el error porque llega a intentar ejecutar la parada del temporizador, y he
estado mirando por ah y efectivamente, como te coment es un evento bastante inestable, he
probado obviar el error 1004 sigue adelante pero no para el tiempo.
Pero he encontrado un temporizador que utiliza las Apis de Windows que seguro que funciona, es
para excel 97 o superior.
Te pego aqu el cdigo que seguro te va a servir, lo he probado y funciona correctamente.
Pega sto en el Modulo.
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long) As Long
Public TimerID As Long
Public TimerSeconds As Single
Sub StartTimer()
TimerSeconds = 1 ' how often to "pop" the timer.
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub
Sub EndTimer()
On Error Resume Next
KillTimer 0&, TimerID
End Sub
Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
Formulario.LabHora = Time
End Sub
Elimina esto:
Sub Tiempo()
'Mediante esta instruccion "llamamos" a "Actualizarreloj" para volver a _
actualzizar el Label con la hora
Application.OnTime Now + TimeValue("00:00:01"), _
Procedure:="Actualizarreloj", _
Schedule:=True
End Sub
Sub Actualizarreloj()
'Coloca la hora en el Label del UserForm
Formulario.LabHora = Time
'"Llama a la rutina que cada 01 segundo "llama" a "Actualizarreloj" para volver a _
actualzizar el Label con la hora
Call Tiempo
End Sub
Sub Detener_reloj()
'Detiene el "OnTime"
Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
Procedure:="Actualizarreloj", _
Schedule:=False
End Sub
para empezar el temporizador: call StartTimer
para parar el temporizador: call EndTimer
Se actualiza cada segundo.
Lo del if para salir, al darle que si, primero haz la llamada al call EndTimer y luego haz el unload.
Al final hemos encontrado una solucin ;)

el 17 nov. 10

Una falla ms pero por mi parte. No he mencionado la plataforma del SO, W7 X64 tengo instalado y
estoy pensando en que si se hace la programacin solo para X64 no funcionar en x86 y viceversa.
Pues me dice que ese cdigo es para platafrma x86 y no x64 y hoy tengo x64 y en la oficina 2 x86 y
2 x64. cmo hago?.
Agradezco tu paciencia y ademas la voluntad altruista de ayudar a resolver mi problema.
Un da me ir a la bermudez para agradecerte je je

el 18 nov. 10

Pues si que parece que hay un problema, pero declarando las funciones como 32 no se si
funcionar bien...
Aqu explica un poco sobre ello: http://support.microsoft.com/kb/2210978 y aqui poner como
realizarlo: http://support.microsoft.com/kb/180736/ es la misma forma que te coment antes.
Y al final he encontrando una forma de declarar las funciones para que en 64 las ejecute como 32,
donde pone esto en el cdigo que te puse:
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long) As Long
Borralo y en vez de eso pon esto, tal cual:
'Declare API
#If VBA7 Then
Public Declare PtrSafe Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Public Declare PtrSafe Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long) As Long
#Else
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, _
ByVal nIDEvent As Long) As Long
#End If
No tienes que tener problema ahora, con lo del timer nuevo...
Espero que te sirva, si no pues... creo que ya si que tendras que mirar otra cosa, jajaja ;)

el 18 nov. 10

Agradezco tu buena voluntad para ayudarme, un esfuerzo bien empleado pero tom una decisin,
es Desistir del mensaje para quedar con el reloj en pantalla.
Gracias amigo y buena suerte

Reloj actualizable en excel


Tengo un libro en excel y quisiera poner un reloj que se actualice constantemente, hay alguna forma
de hacer esto, te comento que mis conocimientos en excel son muy limitados.
SEGUIR

1 RESPUESTA
RESPUESTA DE ELSA MATILDE
1

Elsa Matilde, En mi sitio encontraran material de ayuda, ejemplos para...


Lamento decirte que la nica forma que he visto es a travs de macros. La rutina fue dejada hace
un tiempo por el experto Fejoal, que te la transcribo completa por si te interesa comenzar con este
tema y te es de utilidad.
La rutina se copia en el Editor de macros, dentro de un mdulo que insertars. Al pie encontrars
explicaciones que mencionan 'Botones'. Estos crealos con la barra de Herramientas Formulario,
luego con clic derecho sobre el control, opcin Asignar macro le asignas la que figura en las
explicaciones.
Saludos y no olvides finalizar.
Elsa
*********************************************************************
' Excel VBA Timer Example v1.00
' Copyright 2002 by Sebastian Thomschke, All Rights Reserved.
' http://www.sebthom.de
'*********************************************************************
' If you like this code, please vote for it at Planet-Source-Code.com:
' http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=34409&lngWId=1
' Thank you
'*********************************************************************
' WARNING: ANY USE BY YOU IS AT YOUR OWN RISK. I provide this code
' "as is" without warranty of any kind, either express or implied,
' including but not limited to the implied warranties of
' merchantability and/or fitness for a particular purpose.
'*********************************************************************
' You are free to use this code within your own applications, but you
' are expressly forbidden from selling or otherwise distributing this
' source code without prior written consent.
' *********************************************************************
Option Explicit
Dim ClockCell As String
Dim timer_enabled As Boolean
Dim timer_interval As Double
Sub cmd_TimerOn()
ClockCell = "B8" ' celda donde mostrar el reloj
Dim interval As Double
interval = 1.15740740740741E-05
'start the timer with the specified interval
Call timer_Start(interval)
End Sub
' *********************************************************************
' your code goes into this Makro
' *********************************************************************
Sub Timer()
' output the current time to cell ClockCell
Range(ClockCell).Value = Format(CStr(Time), "hh:mm:ss")
End Sub
' *********************************************************************
' internal timer methods
' *********************************************************************
Sub timer_OnTimer()
Call Timer
If timer_enabled Then Call timer_Start
End Sub
Sub timer_Start(Optional ByVal interval As Double)
If interval > 0 Then timer_interval = interval
timer_enabled = True
If timer_interval > 0 Then Application.OnTime (Now + timer_interval), "Timer_OnTimer"
End Sub
Sub timer_Stop()
timer_enabled = False
End Sub
----
Vers que le agregu una variable para que le indiques en qu celda quieres que se muestre el reloj
(mi pequeo aporte a tan buen procedimiento)
Puedes agregarle un par de botones para iniciar y detener el reloj. Al primero asgnale la macro
cmd_TimerOn(), mientras que al segundo ascialo a timer_Stop()

el 27 ene. 06

Disculpa que no haya contestado ante, pero he estado fuera de casa y he vuelto hoy, impaciente
por ver tu respuesta.
Gracias funciona a la perfeccion.

Reloj
Qu tal quera consultarte si hay alguna funcin o mtodo para que en una celda se active un
cronometro?.
Debo poner un reloj en una hoja excel que al abrirla inicie la cuenta del tiempo transcurrido desde
su apertura.
Y que a pesar de no ingresar datos la celda continu " refrescando" el paso del tiempo.
SEGUIR

1 RESPUESTA
RESPUESTA DE FEJOAL
1

fejoal, Por cuestiones de tiempo y de la increble desidia de muchos...


Para lo que solicitas, puedes apelar a una aplicacin de una rutina que coloca un reloj en una celda
a eleccin.
Afortunadamente, tal rutina ya est desarrollada.
Acredito -como corresponde- a Sebastin Thomschke como el autor del cdigo siguiente.
Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo mdulo ("Insertar", "Mdulo") y
pega el siguiente cdigo:
' *********************************************************************
' Excel VBA Timer Example v1.00
' Copyright 2002 by Sebastian Thomschke, All Rights Reserved.
' http://www.sebthom.de
'*********************************************************************
' If you like this code, please vote for it at Planet-Source-Code.com:
' http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=34409&lngWId=1
' Thank you
'*********************************************************************
' WARNING: ANY USE BY YOU IS AT YOUR OWN RISK. I provide this code
' "as is" without warranty of any kind, either express or implied,
' including but not limited to the implied warranties of
' merchantability and/or fitness for a particular purpose.
'*********************************************************************
' You are free to use this code within your own applications, but you
' are expressly forbidden from selling or otherwise distributing this
' source code without prior written consent.
' *********************************************************************
Option Explicit
Dim ClockCell As String
Dim timer_enabled As Boolean
Dim timer_interval As Double
Sub cmd_TimerOn()
ClockCell = "B8" ' celda donde mostrar el reloj
Dim interval As Double
interval = 1.15740740740741E-05
'start the timer with the specified interval
Call timer_Start(interval)
End Sub
' *********************************************************************
' your code goes into this Makro
' *********************************************************************
Sub Timer()
' output the current time to cell ClockCell
Range(ClockCell).Value = Format(CStr(Time), "hh:mm:ss")
End Sub
' *********************************************************************
' internal timer methods
' *********************************************************************
Sub timer_OnTimer()
Call Timer
If timer_enabled Then Call timer_Start
End Sub
Sub timer_Start(Optional ByVal interval As Double)
If interval > 0 Then timer_interval = interval
timer_enabled = True
If timer_interval > 0 Then Application.OnTime (Now + timer_interval), "Timer_OnTimer"
End Sub
Sub timer_Stop()
timer_enabled = False
End Sub
----
Vers que le agregu una variable (ClockCell) para que le indiques en qu celda quieres que se
muestre el reloj (mi pequeo aporte a tan buen procedimiento)
Finalmente, para que la macro se ejecute al abrir el archivo, activa el editor de Visual Basic
(presiona Alt+F11) y busca la hoja que dice "ThisWorkbook" (o "EsteLibro" segn la versin")
Copia el cdigo siguiente y pgalo en el panel desplegado a la derecha de su Editor de Visual
Basic:
Private Sub Workbook_Open()
cmd_TimerOn
End sub
Private Sub
Workbook_BeforeClose(Cancel As Boolean)
timer_Stop
O, tambin, puedes agregarle un par de botones para iniciar y detener el reloj, independientemente
de que hays introducido las macros de inicio y cierre.
Al primer botn asgnale la macro cmd_TimerOn(), mientras que al segundo ascialo a timer_Stop()
---
Espero que esto cubra tus expectativas.
Un abrazo!
Fernando

Cronometro en Excel.
Necesito un cronometro en la celda (A2) de excel, que se active cuando pongo un valor en la celda
(A1).
SEGUIR

1 RESPUESTA
RESPUESTA DE PARAMISOLO
1

paramisolo, Desconozco temas financieros


Bien quieres que vaya sumando (hacia delante) o que reste desde un tiempo dado (hacia atrs)
Aclarame y te pongo el cdigo de VBA para hacerlo.

el 13 jun. 11

Hola Julio,
Debe de sumar. Desde el momento que pongo el valor en la celda (A1) en la celda (A2)
Aparezca el cronometro que empieza a contar el tiempo.
Un saludo Claudio.

el 13 jun. 11
Vamos a ver te he hecho un par de cosas ms por que normalmente despus de poner el
cronometro siempre continuis la pregunta alegando (Y para pararlo...?) Me explico:
-La macro como t pedas se ejecuta si la celda A2 de la Hoja1 tiene algn valor si est vaca no
hace nada.
En el momento que pones un valor y pulsas enter para validar el dato se pone en marcha un
cronometro en la celda A1 en formato segundos "0:00:01" sumando segundos.
Ahora para pararlo te he puesto que en el mismo formato pongas en la celda B1 el tiempo que
quieras que dure el cronometro, si analizas la macro puedes cambiar el lugar donde poner el valor,
si por ejemplo es para hacer ejercicios a algn alumno puedes utilizar la celda ltima de la hoja
"A65536" donde poner el tiempo y en formato de celdas eliges el color de la fuente el blanco y as
no lo vern.
Entraen VisualBasic (Alt+F11) en la hoja1 del explorador de proyectos haces doble click y en el
modulo de la derecha que estar en blanco pones este cdigo:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
If Target.Value <> "" Then
Call Crono
End If
End If
End Sub
Ahora haces click en el libro del modulo de la izquierda (ThisWorkbook ) y pulsas en la barra de
herramientas (arriba) insertar y eliges Modulo.
Doble click en el Modulo1 que se habr creado en el modulo de la izquierda debajo de
ThisWorkbook y en el modulo en blanco de la derecha pegas este cdigo:
Sub Crono()
Dim tiempo As Date
tiempo = Now + TimeValue("00:00:01")
Application.OnTime tiempo, "calcular"
End Sub
Sub calcular()
Dim mitiempo As String
mitiempo = Range("B1").Text
Range("A1").Value = Range("A1").Value + 1.15740740740805E-05
If Range("A1").Text = mitiempo Then
On Error Resume Next
Application.OnTime tiempo, "calcular", , False
GoTo saltar
End If
Call Crono
saltar:
End Sub
Y ya lo tienes cuando se ponga un valor en A2 y pulses enter o tabulador (salir de la celda) se
pondr en marcha el cronmetro, como ves te he elegido la celda B2 para poner el tiempo final t
cambias la celda a tu gusto y pones el valor eso s recuerda el formato "0:00:00"
Saludos
Julio
Finaliza y punta la pregunta.

Formularios VBA en excel


Estoy realizando un directorio y quisiera que a la hora de introducir mis datos en el formulario que
ya he realizado me los clasifique en las distintas hojas que he creado para cada sector pero que
tambien se quede registrado en la hoja principal que seria como el directorio general. A parte he
creado botones para que se pudiera mostrar la hoja del sector en pantalla completa pero no se
como hacerlo.
SEGUIR

1 RESPUESTA
RESPUESTA DE JUAN CARLOS GONZLEZ CHAVARRA
1

Juan Carlos Gonzlez Chavarra, Programador en VBA, Visual Studio, Contador Privado
Pues sin ver el cdigo no puedo ayudar.

el 3 ago. 09

Tines Razn, Bueno este es mi codigo:


Private Sub CommandButton1_Click() 'INSERTAR DATOS
Dim strfila$
Worksheets("Directorio").Activate
Worksheets("Directorio").Unprotect
Dim fila As String
[A65536].End(xlUp).Offset(1, 0).Select
strfila$ = ActiveCell.Row
ActiveCell = Val(TextBox1)
Range("B" + strfila$) = TextBox2
Range("C" + strfila$) = TextBox3
Range("D" + strfila$) = TextBox4
Range("E" + strfila$) = TextBox5
Range("F" + strfila$) = TextBox6
Range("G" + strfila$) = TextBox7
Range("H" + strfila$) = TextBox8
Range("I" + strfila$) = TextBox9
Range("J" + strfila$) = TextBox10
Range("K" + strfila$) = TextBox11
Range("L" + strfila$) = TextBox12
Range("M" + strfila$) = TextBox13
Range("N" + strfila$) = TextBox14
Range("O" + strfila$) = TextBox15
Range("P" + strfila$) = TextBox16
Range("Q" + strfila$) = TextBox17
Range("R" + strfila$) = TextBox18
Range("S" + strfila$) = TextBox19
Range("T" + strfila$) = TextBox20
Range("U" + strfila$) = TextBox21
Range("v" + strfila$) = ComboBox1
Worksheets("Directorio").Protect
Range("A1").End(xlDown).Select
TextBox1 = ActiveCell.Value + 1
TextBox2 = "": TextBox3 = "": TextBox4 = "": TextBox5 = "": TextBox6 = "": TextBox7 = "": TextBox8
= "": TextBox9 = "": TextBox10 = "": TextBox11 = "": TextBox12 = "": TextBox13 = "": TextBox14 = "":
TextBox15 = "": TextBox16 = "": TextBox17 = "": TextBox18 = "": TextBox19 = "": TextBox20 = "":
TextBox21 = "": ComboBox1 = ""
Exit Sub
seguir:
TextBox2.SetFocus
End Sub
---------------------------------------------------------------------------------------
Private Sub CommandButton2_Click() 'BUSCAR DATOS
u = Hoja2.Range("A" & Rows.Count).End(xlUp).Row
TextBox1 = Empty
With Hoja2.Range("B1:B" & u)
Set c = .Find(TextBox2, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
TextBox3 = c.Offset(0, 1): TextBox4 = c.Offset(0, 2)
TextBox5 = c.Offset(0, 3): TextBox6 = c.Offset(0, 4)
TextBox7 = c.Offset(0, 5): TextBox8 = c.Offset(0, 6)
TextBox9 = c.Offset(0, 7): TextBox10 = c.Offset(0, 8)
TextBox11 = c.Offset(0, 9): TextBox12 = c.Offset(0, 10)
TextBox13 = c.Offset(0, 11): TextBox14 = c.Offset(0, 12)
TextBox15 = c.Offset(0, 13): TextBox16 = c.Offset(0, 14)
TextBox17 = c.Offset(0, 15): TextBox18 = c.Offset(0, 16)
TextBox19 = c.Offset(0, 17): TextBox20 = c.Offset(0, 18)
TextBox21 = c.Offset(0, 19): ComboBox1 = c.Offset(0, 20)
TextBox1 = c.Offset(0, -1)
Else
MsgBox "EL VALOR NO EXISTE"
End If
End With
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton3_Click() 'BOTON SALIR
Unload UserForm1
'ActiveWorkbook.Close True
Worksheets("Inicio").Activate
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton4_Click()
Worksheets("Agricola").Select
Unload Me
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton5_Click()
Worksheets("Ganadero").Select
Unload Me
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton7_Click()
Worksheets("Piscicola").Select
Unload Me
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton8_Click()
Worksheets("Forestal").Select
Unload Me
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton9_Click()
Worksheets("Turismo").Select
Unload Me
End Sub
---------------------------------------------------------------------------------
Private Sub CommandButton10_Click()
Worksheets("Otros").Select
Unload Me
End Sub
--------------------------------------------------------------------------------
Private Sub CommandButton6_Click() LIMPIAR FORMULARIO
UserForm1.TextBox2.Value = ""
UserForm1.TextBox3.Value = ""
UserForm1.TextBox4.Value = ""
UserForm1.TextBox5.Value = ""
UserForm1.TextBox6.Value = ""
UserForm1.TextBox7.Value = ""
UserForm1.TextBox8.Value = ""
UserForm1.TextBox9.Value = ""
UserForm1.TextBox10.Value = ""
UserForm1.TextBox11.Value = ""
UserForm1.TextBox12.Value = ""
UserForm1.TextBox13.Value = ""
UserForm1.TextBox14.Value = ""
UserForm1.TextBox15.Value = ""
UserForm1.TextBox16.Value = ""
UserForm1.TextBox17.Value = ""
UserForm1.TextBox18.Value = ""
UserForm1.TextBox19.Value = ""
UserForm1.TextBox20.Value = ""
UserForm1.TextBox21.Value = ""
UserForm1.ComboBox1.Value = ""
seguir:
TextBox2.SetFocus
End Sub
------------------------------------------------------------------------------
Private Sub UserForm_Initialize() 'AL INICIAR FORMULARIO
Label23.Caption = Date
'Cargamos combobox
ComboBox1.AddItem Worksheets("Clase").Range("a1")
ComboBox1.AddItem Worksheets("Clase").Range("a2")
ComboBox1.AddItem Worksheets("Clase").Range("a3")
ComboBox1.AddItem Worksheets("Clase").Range("a4")
ComboBox1.AddItem Worksheets("Clase").Range("a5")
ComboBox1.AddItem Worksheets("Clase").Range("a6")
Worksheets("Directorio").Activate
Range("a2").Select
If ActiveCell = Empty Then
TextBox1 = 1
Else
Range("a1").End(xlDown).Select
TextBox1 = ActiveCell.Value + 1
End If
End Sub
--------------------------------------------------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "POR FAVOR, PARA SALIR USA EL BOTON CORRESPONDIENTE", vbInformation,
"LEA"
End If
End Sub
Lo que quiero es que al llenar el formulario, la Hoja "Directorio" se vaya llenando pero que segun el
sector en este caso para utilizar el ConboBox1 "Agricola, ganadero, piscicola,..." vaya copiando a su
hoja respectiva.
Espero poder explicarme y que me puedas ayudar..

el 3 ago. 09
en esta direccion puedes encontrar mi archivo
http://www.mundoverde.netii.net/Webs/Directorio.xlsm

el 3 ago. 09

Viendo tu hoja podras utilizar alguna rutina que diga.


If ComboBox1.Text = "Agrcola" Then Hoja("Agrcola").Select
RestoDeTuCodigo
End If
O podras hacerlo con un Select Case ... End Select

You might also like