PROGRAMAR EN VBA MACROS PARA EXCEL: febrero 2013

Celda cambia de color a medida que se desplaza



Procedimiento de VBAMacro de Excel que hace que la celda vaya cambiando de color a medida que se desplaza por otra, también puedes darle un vistazo a dar formato a una fila dependiendo del valor de una celda, donde se explica y podrás descargar un ejemplo, de como se puede dar un formato a las fila actual dependiendo del valor de la celda actual.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  


Un post bastante relacionado con el tema de ejecutar macros dependiendo donde se encuentra la celda activa es como ejecutar una macro al activar una celda, lo cual es bastante útil cuando se requiere que la macro ejecute un determinado códido de VBA si la celda activa está en cierta posición, por ejemplo si la celda activa esta en la columna A2 ejecute cierta suma, si esta en A3 otra suma u cualquier operación o evento que queramos que ocurra dependiendo si el cursor se encuentra en el rango requerido.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.











Public celdaAnt
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'rutina que ilumina la celda 2 col delante
'solo se ejecuta si se selecciona 1 celda de la col C
If Target.Cells.Count = 1 And Target.Column = 3 Then
Target.Offset(0, -2).Interior.ColorIndex = 5 'color azul a la celda
'Target.EntireRow.Interior.ColorIndex = 3 'color rojo a la fila
If celdaAnt <> "" Then
Range(celdaAnt).Interior.ColorIndex = 0 'quita color a la celda
'Range(celdaAnt).EntireRow.Interior.ColorIndex = 0 'quita color a la fila
End If
'se guarda la celda anterior
celdaAnt = Target.Offset(0, -2).Address
End If
End Sub





Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Guarda Excel automáticamente cada minuto


Este procedimiento de VBA  o macro de Excel, tiene por objeto algo bastante útil que es el autoguardado del libro Excel en el que estamos trabajando, también se relaciona con el ejemplo sobre como abrir un libro extraer información y guardar archivos tipo CVS, todo ello mediante código de VBA.

El código de VBA que aquí se presenta, titulado guardar Excel automáticamente, incorpora un ejemplo que tiene cierta relación y es complementario con la entrada sobre como crear carpetas y guardar archivo con nombre variable en pdf, ya que se crea un procedimiento de VBA bastante interesante, ya que soluciona muchos problemas que trae aparejado el olvido del guardado de un libro de Excel a medida que se trabaja, si bien Excel posee un autoguardado se debe configurar cada cuanto tiempo y a veces provoca errores cuando son planillas complejas, nada mejor que ir guardando automáticamente el libro cada cierto tiempo.

Muchas veces me ha pasado y seguramente a ustedes también que se imprime mucho tiempo trabajando y deja de la lado el guardado de dicho trabajo, y luego nos agarramos la cabeza, porque hemos perdido tan valioso trabajo; ello puede deberse a un fallo en la corriente eléctrica o porque se tildó el Excel o Windows, obteniendo como resultado la perdida de varios minutos e incluso horas de trabajo por no guardar el libro.

Con esta macro nos debemos olvidar del guardado del libro y pérdida de tiempo que genera al tener que volver a realizar el trabajo ya hecho antes de los eventos mencionados anteriormente; ya que al abrir el libro de Excel se inicia la macro y sigue corriendo hasta que cerremos el libro, guardándolo cada minuto, en este ejemplo, peros se puede configurar para el intervalo que se necesite; cosa que si ocurre algo imprevisto como lo que se dijo, solo se pierda como mucho un minuto de trabajo, lo cual hace bastante interesante la macro.

Primero se debe colocar en ThisWorkbook el siguiente procedimiento


Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:01:00"), "savebook"
End Sub

Luego en un módulo el siguiente código:



Sub savebook ()
ActiveWorkbook.Save
Application.OnTime Now + TimeValue("00:01:00"), "savebook"
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Cambia de minúscula a mayúscula y viceversa


Procedimiento para pasar de minúscula a mayúscula y viceversa:

1) Pasar todo a mayúscula: el siguiente es un procedimiento extremadamente sencillo, lo que hace es pasar toda el contenido de la celda activa a mayúscula.

Sub mayuscula()
ActiveCell = UCase(ActiveCell)
End Sub


2) Pasar todo a minúscula: el siguiente es un procedimiento extremadamente sencillo, lo que hace es pasar toda el contenido de la celda activa a minúscula.


Sub minuscula()
ActiveCell = LCase(ActiveCell)
End Sub



Al trabajar con cadenas de texto es necesario  poder extraer ciertos caracteres, a partir de un espacio,  de cierta posición, caracteres que se encuentran a la derecha o izquierda, invertir cadenas, etc. para ello existen funciones útiles para manipular cadenas de texto o  string, en el link tienes un ejemplo sobre como manipular cadenas de texto.


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página.



If this post was helpful INVITE ME A COFFEE and so help keep up the page.