Professional Documents
Culture Documents
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.
> Utilice una frmula que determine las celdas para aplicar formato.
=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
Escribimos la macro
1. Abrimos MVB pulsando simultneamente las teclas [ALT] y [F11]
2. Insertamos un mdulo
Worksheets(1).Calculate
End Sub
End Sub
Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con FacebookCompartir en Pinterest
Etiquetas: MS Office
13 comentarios:
1.
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.
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.
Supongo que se debe configurar o habilitar macros o algo asi... por favor ayudaaaaaa
Responder
3.
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.
El error en el paso 7 es porque la formula "RESIDUO" debe ser reempplazada por "RESTO"
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
Pasos:
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:
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
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.
6 comentarios:
Annimo dijo...
Aprendiz dijo...
Annimo dijo...
Aladino dijo...
Annimo dijo...
Gracias
Muy efectivo y rpido vuestro ejemplo, las palabras sobran amigos. Son ustedes una formidable ayuda. Muy buena
Saludos.
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
Sub StartBlink()
'Por.Dam
Application.SendKeys "{ESC}"
Exit Sub
End If
End If
With ThisWorkbook.Worksheets("Hoja1").Range("A1:c4").Interior
Else
End If
End With
End Sub
Ahora:
5. Del lado izquierdo tienes donde dice ThisWorkbook, dale doble click con el mouse
Por.Dam
Call StartBlink
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call StartBlink
End Sub
Saludos. Dam
Hola Dam
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?
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.
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.
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:
3. Usemos macros!
Presiona las teclas ALT + F11 (para abrir el editor de macros)
[miColumna] = Target.Column
[miFila] = Target.Row
=COLUMN(A7)=miColumna
Repite la operacin para agregar otra condicin al formato condicional e
ingresa la siguiente frmula:
=ROW(A7)=miFila
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
o
o
ActiveSheet. Unprotect
ActiveSheet. Protect
Espero te sirva.
Saludos
Reply
Compartir
cuando proteges la hoja debes marcar la casilla que te permite seleccionar celdas
Reply
Compartir
o
o
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
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:
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.
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
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
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).
o
o
Hola.
Eso creo yo que se resolvera con solo poner una referencia de esta forma:
Range("A1").Value = ActiveCell.Value
Saludos
Reply
Compartir
o
o
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
Hola, Emmanuel.
Gracias a vos por pasar a saludar.
o
o
o
o
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
o
o
Saludos
Reply
Compartir
o
o
o
o
Saludos
Reply
Compartir
o
o
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
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
o
o
Un abrazo
Reply
Compartir
o
o
Luis Angel hace 2 aos
o
o
Saludos
Reply
Compartir
o
o
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
Hola, Andy.
Saludos
Reply
Compartir
o
o
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
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.
Un saludo
Reply
Compartir
o
o
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
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
o
o
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
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
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
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
Saludos
Reply
Compartir
Saludos Ray,
Hola, Alejandro. El cdigo lo ingresas al crear la macro tal cual. Paso por paso.
Un saludo
Reply
Compartir
o
o
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
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.
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
Saludos
Reply
Compartir
o
o
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
o
o
o
o
o
o
Javier Hernandez hace 2 aos
o
o
Saludos
Reply
Compartir
o
o
o
o
Un placer, Priscila.
Saludos
El objetivo.
Imagina que tienes un listado de crditos o prstamos otorgados a ciertos clientes.
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)
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).
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?
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, 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.
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?
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)
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:
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.
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!
Ayudara mucho si usaras una forma de copiar esos pasos de una sola ves. No lo
crees?
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.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.
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
Intersect
Con esta lnea, lo que hago es preguntarle a Excel: El cambio se hizo dentro del
rango B1:B10?
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
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...
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
ActiveWorkbook.Close False
ActiveWorkbook.Close True
En caso de que quieras grabar los cambios que haya sufrido el archivo.
Saludos,
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
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.
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
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
el 30 oct. 12
Sub nuevo()
'por luismondelo
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
End Sub
SEGUIR
1 RESPUESTA
RESPUESTA DE LUIS MONDELO
1
timer
parar
target.interior.colorindex = xlnone
End If
End Sub
Sub timer()
End Sub
Sub pintado()
Range("a10").Interior.ColorIndex = Application.WorksheetFunction.RandBetween(3, 4)
timer
End Sub
Sub parar()
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.
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
SEGUIR
1 RESPUESTA
RESPUESTA DE LUIS MONDELO
1
Sub color()
c = Application.WorksheetFunction.RandBetween(2, 3)
Range("c4").Interior.ColorIndex = c
End Sub
el 16 mar. 12
el 18 mar. 12
el 19 mar. 12
el 19 mar. 12
Cpialo tal cual a un mdulo y ejecuta primera la macro COLOR, despus puedes ejecutar la macro
PARAR y se parar el parpadeo.
Public var
Sub color()
c = Application.WorksheetFunction.RandBetween(2, 3)
Range("c4").Interior.ColorIndex = c
End Sub
Sub parar()
End Sub
[RESUELTO] Color intermitente
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
Mensajes: 1827
Registrado: Lun Nov 24, 2008 1:13 pm
A
r
r
i
b
a
Hola
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.
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.
Espero te sirva
Adjunto ejemplo
ADJUNTOS
FormatoCondicionalIntermitente.ods
SLV-es
Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa
A
r
r
i
b
a
SLV-es
Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa
A
r
r
i
b
a
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a
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
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.
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
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a
Saludos, Federico.
ADJUNTOS
Parpadeo1.ods
Parpadeo Celda
fornelasa
Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a
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
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
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.
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
fornelasa
Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a
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
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a
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
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a
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.
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
Muchas gracias.
Resuelto en parte.
He hecho unos pequeos cambios, quedando:
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
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
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?
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
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
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
Lo tengo !!!!
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
SLV-es
Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicacin: Espaa
A
r
r
i
b
a
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)))
Mensajes: 1827
Registrado: Lun Nov 24, 2008 1:13 pm
A
r
r
i
b
a
[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
Mensajes: 18
Registrado: Jue Abr 25, 2013 12:02 pm
A
r
r
i
b
a
Hola a todos...
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
fornelasa
Mensajes: 2712
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicacin: Estado de Mxico, Mxico.
A
r
r
i
b
a
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.
1 RESPUESTA
RESPUESTA DE ABRAHAM VALENCIA
1
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
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.
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
En el ejemplo que te envi, tienes que modificar el formato del textbox al momento que lo pasas a tu
base.
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.
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
Saludos. Dam
1 RESPUESTA
RESPUESTA DE TAVOPZ
1
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
1 RESPUESTA
RESPUESTA DE DANTE AMOR
1
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
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
1 RESPUESTA
RESPUESTA DE ABRAHAM VALENCIA
1
1 RESPUESTA
RESPUESTA DE PROZAC
1
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
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
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
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
1 RESPUESTA
RESPUESTA DE ELSA MATILDE
1
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
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
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.
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
el 3 ago. 09
en esta direccion puedes encontrar mi archivo
http://www.mundoverde.netii.net/Webs/Directorio.xlsm
el 3 ago. 09