Como simular scroll seleccionando celda y desplazando boton automaticamente





En este post te presento un ejemplo de macro que permite crear un scroll seleccionado celdas y desplazando un botón de comando automáticamente; scroll se puede definir como el desplazamiento que se realiza en una hoja o ventana, en este caso una hoja de Excel, a través de la rueda del mouse.

En otras palabras al seleccionar una celda con el mouse la hoja automáticamente hará un scroll desplazándose hasta la fila o columna seleccionada, es decir el scroll puede ser vertical u horizontal, desplazando automáticamente un botón de comando que se encuentra incrustado en la hoja de Excel.

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.


  

Desde el link del final se puede descargar el ejemplo que he dominado como simular un scroll del mouse seleccionando una celda y desplazando un botón de comando automáticamente; en el archivo se podrá observar un botón de comando incrustado (Control ActiveX) en la hoja de Excel.

El ejemplo funciona de la siguiente manera: al hacer click con el mouse en una celda determinada se realiza un scroll, es decir simula la acción realizada por la rueda del mouse, moviéndose hasta la fila y columna seleccionada, a su vez el botón se desplaza o mueve automáticamente quedando siempre visible o flotando en la hoja de Excel,

En el ejemplo no se agrega ningún procedimiento al botón, cada lector le deberá incorporar los procedimientos que sean necesarios, es bastante útil cuando se tiene planillas grandes y se requiere contar con los comandos que realizan procedimientos, siendo mucho más productivo ya que los comandos necesarios siempre se encontrarán visibles sea que navegue por cualquier celda o columna de la hoja.

Debajo se encuentra la codificación necesaria, se observa que la primer parte del código permite realizar el scroll y la segunda parte del código indica donde se debe desplazar el botón para que siempre esté visible.

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.







Código que se inserta en un módulo




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
        .ScrollColumn = ActiveCell.Column
        .ScrollRow = ActiveCell.Row
End With
Set ran = ActiveCell
Set mybo = Sheets("hoja1").CommandButton1
With mybo
.Top = ran.Top + 100
.Left = ran.Left + 100
End With
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      

Como abrir otro libro y copiar o exportar datos del libro actual





Infinidades de veces se requiere copiar datos de un libro a otro, este post te muestra una macro que permite copiar datos del libro actual a otro libro, es decir permite seleccionar un archivo luego abrirlo copiar los datos del libo actual al libro que se abrió guardar los cambios y cerrarlo. Anteriormente se presentó otros post parecidos que quizás sean de interés como por ejemplo: macro que abre una serie de libros extrae datos y hace resumen o recorrer todas las hojas del libro y hacer un resumen.

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.


  

Al descargar el archivo comprimido se encontrará una macro y un libro que se utiliza de muestra, pero puede usar cualquier libro de su PC, teniendo la precaución de que los datos contenidos en el libro con la macro se copiarán el en libro que se selecciones y se guardarán los cambios, por eso sugiero utilizar el libro que se acompaña para evitar perder datos de otros libros.

Presionado el botón se ejecuta una macro que abre un explorador de archivos de Windows, permitiendo seleccionar un archivo, luego la macro copia los datos del libro actual, abre el archivo seleccionado, copia los datos y cierra el libro que se selecciono como destino de los datos copiados o exportados, guardando los cambios.

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.






Código que se inserta en un módulo




Sub openbook()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim myfile, mybook, a, b, c As String
ruta = ActiveWorkbook.Path
ChDir ruta
myfile = Application.GetOpenFilename("Archivos Excel (*.xl*), *.xl*")
If VarType(myfile) = vbBoolean Then
MsgBox ("Operación cancelada"), vbCritical, "AVISO"
Exit Sub
End If
mybook = ActiveWorkbook.Name
Workbooks.Open Filename:=myfile, UpdateLinks:=0
FullName = Split(myfile, Application.PathSeparator)
a = FullName(UBound(FullName))
Set b = Sheets(ActiveSheet.Name)
b.Cells.Clear
Workbooks(mybook).Sheets("Datos").UsedRange.Copy Destination:=Workbooks(a).Sheets("Hoja1").Cells(1, 1)
Application.CutCopyMode = False
Workbooks(a).Close True
MsgBox ("Los datos se exportaron con éxito"), vbInformation, "AVISO"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
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      

Como limpiar todos los combobox de una sola vez





En mucha oportunidades al programar utilizamos userforms y en ellos podemos tener una gran cantidad de controles entre ellos combobox, sucede que cuando se requiere ingresar un nuevo registro, se deben limpiar o borrar los datos para dar lugar al nuevo registro, en el caso que tengamos muchos comobox la tarea de programar para borrar o limpiar los datos del combobox puede ser tediosa y si se realiza combobox por combobox se crea una gran cantidad de código innecesario, para evitar esto te presento esta macro que limpia todos los comobox del formulario  de una sola vez en forma automática.

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.


  

El ejemplo de macro que permite limpiar todos los combobox de una sola vez, se puede descargar desde el final del post, en el vídeo que sigue se puede observar la ejecución de la macro y la explicación del código en forma grafica.

El código consiste en hacer un bucle recorriendo todos los controles del formulario, determinando cual es un combobox en ese caso procede a borrarlo y sigue recorriendo los siguientes controles borrando los datos de los combobox solamente o limpiando los mismos; el borrado o limpiado de los combobox en necesario hacerlo cada vez que se necesita escribir en ellos nueva información ya sea por datos nuevos que se buscan o para ingresar los mismos a la base de datos.

Suscribe 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.






Código que se inserta en un módulo




Private Sub CommandButton5_Click()
Dim h As Object
For Each h In UserForm2.Controls
If TypeOf h Is ComboBox Then
h = ""
End If
Next
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      

Infidelidad Humor Grafico





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.


  


Humor Gráfico Infidelidad




Suscribe 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 seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.







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      

Macro autoelimina archivo previo copia fichero





En este post te presento un ejemplo de macro, que cada lector le encontrará la utilidad de corresponda a cada necesidad, la macro se autoelimina, es decir borra el archivo con la macro, previo a ello y por cuestión de seguridad la macro autocopia el archivo previo a auto eliminarse.


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.


  


El objeto de la macro que autoelimina archivo, es que verificada una cierta fecha de expiación de uso del archivo se elimine, el ejemplo en primer lugar determina el nombre del archivo y establece que numero de copia corresponde.

La macro cada vez que se autoelimina previamente se autocopia y otorga un número de copia, es decir el nombre del archivo esta compuesto por el nombre del archivo de la macro y al final agrega 1, 2, 3 y así sucesivamente, es decir que se puede volver a ingresar al archivo copiado y volver a eliminarlo que se seguirá autocopiando.

La macro también determinar el número de copia del archivo y otorga a la copia a guardar el número de copia siguiente al archivo actual, por último compara una fecha de caducidad con la fecha del sistema, en caso de ser menor el archivo procede a eliminarse, pero por cuestión de seguridad previamente se autocopia, en el caso del ejemplo la fecha es menor a la actual por lo cual el archivo siempre se eliminará.

Desde el link del final puedes descargar el ejemplo, ten cuidado con el archivo ya que se autoelimará, no obstante se realizará una copia antes; suscribe al blog ingresando tu mail en la casilla superior derecha de la página; te solicito suscribas a nuestro canal de You Tube y recibe GRATIS macros para automatizar Excel.

Suscribe 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.






Código que se inserta en un módulo




Private Sub LibroAutoelimina()
Dim fecha As Date
Dim wb As Workbook
WN = ActiveWorkbook.Name
Path = ActiveWorkbook.Path & "\"
path1 = ActiveWorkbook.Path & "\" & WN
FullName = Split(WN, Application.PathSeparator)
a = FullName(UBound(FullName))
pto = InStr(a, ".")
WN = Left(a, pto - 1)
lar = Len(WN)
cr = StrReverse(WN)
espa = InStr(cr, " ") - 1
cad = Mid(cr, 1, espa)
cad = StrReverse(cad)
For x = 1 To espa
le = Mid(cad, x, 1)
If IsNumeric(le) Then nlibro = nlibro & le
Next x

If Val(nlibro) = Empty Then
nl = 1
Else
nl = nlibro + 1
ne = InStr(WN, nlibro)
WN = Mid(WN, 1, lar - espa - 1)
End If

WN = WN & " " & nl & ".xlsm"
path2 = Path & WN
ActiveWorkbook.SaveCopyAs Filename:=path2

fecha = "20/09/2013" 'fecha de eliminacion del libro
Set wb = ThisWorkbook

If fecha <= Date Then MsgBox "Se ha cumplido el periodo de prueba del libro!", vbCritical


With wb
.Saved = True 'se estable como salvado
.ChangeFileAccess xlReadOnly 'se pone el acceso al libro como de solo lectura
Kill .FullName 'se elimina el libro
Application.Quit
End With
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      

Como copiar varias tablas vinculadas de Excel a Word





Es posible que cuando se realiza un informe con datos que se encuentra en Word normalmente se base en varias tablas de Excel y no en solamente una tabla con datos, cuyo ejemplo se presentó en el post anterior; para solucionar el tema proporciono esta macro que permite copiar o exportar varias tablas vinculadas de Excel a Word, es decir que cuando se cambie algún dato en las tablas de Excel basta con actualizar el vínculo en Word para que se actualicen los datos.

Otros post relacionados con macros que permiten manejar Word desde Excel:

Como crear un archivo de Word con Excel
Como abrir un archivo de Word con Excel
Como conectar Excel con Word crear archivo e insertar texto en Word
Como dar formato a texto de Word desde Excel 
Como abrir modificar e imprimir archivo de Word con macro desde Excel
Como modificar una plantilla de Word con macro de Excel
Como rellenar pagare con datos de Excel conectando con Word
Como crear cartas en Word con clientes listados en Excel
Como copiar tablas o cuadros de Word a Excel
Como exportar tabla de Excel a Word
Como exportar varias tablas de Excel a Word
Como copiar tabla vinculada de Excel a Word
Como copiar varias tablas vinculadas de Excel a Word

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.


  

El ejemplo de macro que copia o exporta varias tablas vinculadas de Excel a Word, recorre los datos desde la primer hasta la última fila con datos, determinando el rango de cada tabla y copiandolas a Word en forma vinculada, es significa que al modificar la tabla en Excel se modifica en Word automáticamente una vez actualizado el vínculo.

En el vídeo que se encuentra debajo podrás ver en forma gráfica el funcionamiento de la macro como así también una explicación más detallada del código, te recomiendo descargar el archivo comprimido y descomprimirlo en cualquier lugar de la PC con la condición que se encuentre en la misma carpeta.

El arhivo comprimido tiene dos archivos uno de Excel con la Macro y otro de Word con la plantilla con el informe donde se exportarán las tablas; luego la macro creará otro archivo con un informe con tablas vinculadas; suscribe a nuestro canal de You Tube, para recibir futuros ejemplos en forma gratuita en tu correo; para suscribir al blog puedes hacerlo de la parte superior derecha de la página, solo debes agregar tu correo electrónico y listo.

Suscribe 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.



Código que se inserta en un módulo




Sub ExportaTablasWord()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
On Error Resume Next
Set a = Sheets(ActiveSheet.Name)
nom = ActiveWorkbook.Name
pto = InStr(nom, ".")
nomarch = Left(nom, pto - 1)
ruta = ThisWorkbook.Path & "\" & nomarch & ".docx"
Set objWord = CreateObject("Word.Application")
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True
Set wdDoc = objWord.Documents.Open(ruta)
nomfic = nomarch & " " & Format(Date, "dd-mm-yyyy")
rutainf = ThisWorkbook.Path & "\" & nomfic & ".docx"

pf = 1
uff = a.Range("A" & Rows.Count).End(xlUp).Row
n = 1

Do
uf = a.Range("A" & pf).End(xlDown).Row
pc = a.Range("A" & pf).Address
pwc = Mid(pc, InStr(pc, "$") + 1, InStr(2, pc, "$") - 2)

uf = uf
uc = a.Range("A" & pf).End(xlToRight).Address
wc = Mid(uc, InStr(uc, "$") + 1, InStr(2, uc, "$") - 2)

a.Range(pwc & pf & ":" & wc & uf).Copy

ts = "[Campo_Tabla" & n & "]"
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=ts
While objWord.Selection.Find.Found = True
objWord.Selection.PasteExcelTable True, True, False
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=ts
Wend

pf = uf + 3
n = n + 1
Loop While pf <= uff

wdDoc.SaveAs Filename:=rutainf, FileFormat:=wdFormatXMLDocument
'wdDoc.Close
MsgBox ("Las " & n - 1 & " tablas se exportaron con éxito"), vbInformation, "AVISO"
'wdDoc.Quit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
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      

Como copiar tabla vinculada de Excel a Word





En este post te presento un ejemplo de macro de VBA que permite copiar una tabla vinculada de Excel a Word, anteriormente habíamos visto como copiar una tabla de Excel a Word, pero insertándose como una imagen en Word, en este ejemplo la tabla se copia, pero como tabla vinculada, es decir que los cambios que se realicen en la tabla de Excel se verán reflejados en la tabla de Word al actualizar el vínculo con un click; este ejemplo es útil cuando se trabaja con tablas de datos que cambian constantemente, pero el informe de Word es estándar, es decir es la misma plantilla de Word donde varían los datos.

Otros post relacionados con macros que permiten manejar Word desde Excel:

Como crear un archivo de Word con Excel
Como abrir un archivo de Word con Excel
Como conectar Excel con Word crear archivo e insertar texto en Word
Como dar formato a texto de Word desde Excel 
Como abrir modificar e imprimir archivo de Word con macro desde Excel
Como modificar una plantilla de Word con macro de Excel
Como rellenar pagare con datos de Excel conectando con Word
Como crear cartas en Word con clientes listados en Excel
Como copiar tablas o cuadros de Word a Excel
Como exportar tabla de Excel a Word
Como exportar varias tablas de Excel a Word
Como copiar tabla vinculada de Excel a Word

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.


  

El ejemplo se descarga desde el link del final en forma gratuita, te recomiendo suscribas al blog, puedes ingresar tu mail de la casilla del lado derecho al principio, con lo cual recibirás en tu mail las publicaciones que se vayan realizando, no te preocupes no debes pagar nada, es gratis, así mismo tenemos un canal de You Tube donde se exponen las explicaciones en forma más detallada y gráfica por lo que te sugiero suscribas al mismo.

Al descargar el ejemplo se observa que hay un archivo comprimido, al descomprimirlo encontrarás dos archivos uno de Word, que es la plantilla con la que trabaja la macro y otro de Excel que es donde está la macro; al ingresar en el archivo de Excel observaras un botón a la derecha de donde se ejecuta la macro y en las celdas una tabla con varios números.

El objeto del ejemplo de macro denominado como copiar una tabla vinculada de Excel a Word, es copiar la tabla que se encuentra en Excel en el documento de Word, que se usa como plantilla luego se cierra sin modificarse para futuras ejecuciones de la macro, la macro crea un archivo de Word donde se pega la tabla vinculada de Excel; al quedar vinculada y no como imagen, tiene la particularidad que al modificar los datos en Excel se modifican en la tabla de Word automáticamente luego de actualizar el vínculo en Word.

La codificación del ejemplo se encuentra debajo de estos párrafos, cuando la macro crea el nuevo archivo le otorga el mismo nombre que el archivo de la macro con el aditamento al final de la fecha actual obtenida del sistema, en la proxima muestro como copiar varias tablas vinculadas de Excel a Word en vez de una sola como en este caso.

Suscribe 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.





Código que se inserta en un módulo




Sub ExportaTablaWord()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
On Error Resume Next
Set a = Sheets(ActiveSheet.Name)
a.Range("A1:E11").Copy
nom = ActiveWorkbook.Name
pto = InStr(nom, ".")
nomarch = Left(nom, pto - 1)
ruta = ThisWorkbook.Path & "\" & nomarch & ".docx"
uf = a.Range("A" & Rows.Count).End(xlUp).Row
Set objWord = CreateObject("Word.Application")
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True

Set wdDoc = objWord.Documents.Open(ruta)
nomfic = nomarch & " " & Format(Date, "dd-mm-yyyy")
rutainf = ThisWorkbook.Path & "\" & nomfic & ".docx"

ts = "[Campo_Tabla]"
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=ts
While objWord.Selection.Find.Found = True
objWord.Selection.PasteExcelTable True, True, False
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=ts
Wend

wdDoc.SaveAs Filename:=rutainf, FileFormat:=wdFormatXMLDocument
'wdDoc.Close
MsgBox ("La tabla se exportó con éxito"), vbInformation, "AVISO"
'wdDoc.Quit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
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