Como cerrar libro dependiendo de fecha de caducidad





Cuando se programa es posible que se quiera dar a ciertas demos (programas de demostración), aplicativos o automatización de hojas, cierta fecha de caducidad; es decir la fecha límite hasta la cual el usuario está autorizado a usar dicho archivo de Excel, aplicativo o demo, en este post presento una macro que cierra el libro una vez pasada la fecha hasta la cual se esta autorizado a utilizar el archivo. pasada dicha fecha el archivo no pueda ser utilizado, ya que se cerrará.

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, denominada como cerrar libro dependiendo de fecha de caducidad o fecha límite para la cual un usuario está autorizado a usar dicho archivo, consiste básicamente en comparar la fecha del sistema con la fecha cargada en la macro, es decir hasta esa fecha se podrá usar el archivo, una vez transcurrida dicha fecha el archivo se cerrará automáticamente cada vez que se abra impidiendo su uso.

La comparación entre la fecha del sistema y la fecha que está cargada en la macro o de caducidad, se realiza cuando se abre el archivo, por ende la programación se debe colocar en el objeto ThisWorkBook en el evento Open de cada libro de Excel que se requiera darle fecha de caducidad o fecha límite de autorización para su uso.

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 Workbook_Open()
On Error Resume Next
Application.ScreenUpdating = False
'Compara fechas
Dim miFecha As Date
Dim ahora As Date
miFecha = CDate("27 / 05 / 2025")
ahora = CDate(Now())
If ahora > miFecha Then
UserForm5.Show
ActiveWorkbook.Close False
Application.ScreenUpdating = True
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      

Como leer un archivo TXT delimitado por tabulaciones con macro





En el presente post muestro una macro que permite leer archivos TXT delimitado o separado por
tabulaciones, anteriormente se presentó una macro que permite leer archivos TXT y macro que permite leer archivos TXT delimitados por coma o punto y coma, quizás te interese ver dichos post si requieres aprender a leer archivos TXT con macro.

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 denominado como leer un archivo TXT delimitado por macro, se puede descargar desde el final del post, se descargará un archivo comprimido con dos ficheros uno de Excel y otro TXT que es el archivo que usa la macro para poder mostrar el ejemplo, dicho archivo TXT esta delimitado por tabulaciones.

Al abrir un archivo TXT mediante un editor de texto se podrá ver una serie de datos, que a simple vista parece basura, es decir un montón de datos difícil de comprender y sin sentido, no obstante en dicho archivo se encuentra toda la información de las URL de la WEB http://programarexcel.com y las URL del Canal de You Tube donde se encuentran los archivos tutoriales de cada post; sin embargo cuando se ejecuta la macro se puede observar como la macro al leer el archivo TXT delimitado por tabulaciones y se agregan en cada una de las columnas y filas los datos correspondientes.

A modo de plus el ejemplo contenido en este post, contiene todas las URL de la WEB http://programarexcel.com y las URL del Canal de You Tube donde se encuentran los archivos tutoriales de cada post; ello es importante, porque se puede usar a modo de índice ya que cuando se requiere programar una macro o automatizar Excel, se puede consultar este archivo de Excel, encontrar entre los cientos de ejemplos, algún ejemplo parecido a lo que se necesita y en base a ello modificar o adaptar a las necesidades de cada lector, teniendo un vínculo directo a la web para descargar el ejemplo y al canal de You Tube donde siempre se puede ver como funciona la macro y una explicación en detalle del código y funcionamiento de cada ejemplo.

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 opentxtseparadoTabulacion()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim myfile As Variant, cad As String, fila As Long, texto() As String
Dim h, j As Long, fil As Long, col As Long
ruta = ActiveWorkbook.Path
ChDir ruta
myfile = Application.GetOpenFilename("Archivos Txt (*.txt*), *.txt*")
If VarType(myfile) = vbBoolean Then Exit Sub
Open myfile For Input As #1
fil = 1
col = 1
Cells.Clear
While Not EOF(1)
Line Input #1, cad
texto = Split(cad, vbTab)
j = UBound(texto)

For h = 0 To j
Cells(fil, col) = fil
Cells(fil, col).Value = texto(h)
col = col + 1
Next h
col = 1
fil = fil + 1
Wend
Close #1
MsgBox ("Los datos se leyeron con éxito"), vbInformation, "AVISO"
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 leer un archivo TXT separado coma con macro





En un ejemplo anterior se presentó una macro que lee archivos TXT, en el presente post muestro una macro que permite leer archivos TXT pero delimitados o separados por coma o punto y coma; es decir los datos que se encuentran en el archivo de texto plano, se encuentran separados por coma o punto y coma.

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 link que se encuentra al final de post permite descargar el ejemplo de macro denominada como leer un archivo TXT separado o delimitado por coma o punto y coma; consiste en un archivo comprimido conteniendo dos archivos uno de Excel con la macro y otro archivo TXT que se usa para mostrar el funcionamiento del ejemplo, pero se puede usar cualquier archivo que tenga cada lector en su PC cuyos datos se encuentren delimitados o separados por coma.

El ejemplo agrega en la variable cada una de las cadenas de texto, a través de la función de VBA Split; cuya separación entre datos este dada por punto y coma, en este caso, pero se puede ser coma, para ello se debe cambiar la siguiente parte del código:

texto = Split(cad, ";")

por este código:

texto = Split(cad, ",")

Luego se realiza un bucle hasta que se llegue al final de todas las lineas del archivo TXT; por cada una de las cadenas de texto separadas por punto y coma, que fueran cargadas en la variable texto a través de la función Split, las cuales se van agregando en las diferentes columnas de la hoja de Excel.

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 opentxtseparadoscoma()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim myfile As Variant, cad As String, fila As Long, texto() As String
Dim h As Long, fil As Long, col As Long
ruta = ActiveWorkbook.Path
ChDir ruta
myfile = Application.GetOpenFilename("Archivos Txt (*.txt*), *.txt*")
If VarType(myfile) = vbBoolean Then Exit Sub
Open myfile For Input As #1
fil = 1
col = 1
Cells.Clear
While Not EOF(1)
Line Input #1, cad
texto = Split(cad, ";")
For h = 0 To UBound(texto)
Cells(fil, col) = fil
Cells(fil, col).Value = texto(h)
col = col + 1
Next h
col = 1
fil = fil + 1
Wend
Close #1
MsgBox ("Los datos se leyeron con éxito"), vbInformation, "AVISO"
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 leer un archivo TXT con macro





Si habitualmente realizas macros, es seguro que en más de una oportunidad necesitarás leer un archivo txt con macro, muchos programas de bases de datos exportan sus datos a archivos txt, un archivo TXT es un archivo de texto plano o simple, es decir carece de todo formato es una cadena de texto legible por humanos, pero que no contiene formato alguno; pues bien lo que hace el ejemplo que muestro a continuación, es una macro que leer un archivo TXT.

En post que siguientes se muestra como leer un archivo TXT delimitado por coma o punto y coma; macro que lee archivo TXT delimitado por tabulaciones y como leer con macro un archivo TXT delimitados por un ancho fijo de caracteres.

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 final del post descarga el ejemplo que permite leer un archivo TXT con macro, se descargará un archivo comprimido que contiene dos archivos, un fichero de Excel con la macro y otro archivo TXT que servirá para que la macro pueda leer el archivo.

La macro abre el archivo TXT y luego hacer un bucle leyendo linea por linea y agregando los datos a las filas de Excel en este caso se agregan en la columna B, en la columna A va agregando el número de lineas con cadenas de texto que hay en el archivo TXT. Para probar la macro una y otra vez se deberán borrar los datos y ejecutar la macro desde el botón para que puedas observar los resultados.

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 opentxt()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim myfile As Variant, cad As String, fila As Long
ruta = ActiveWorkbook.Path
ChDir ruta
myfile = Application.GetOpenFilename("Archivos Txt (*.txt*), *.txt*")
If VarType(myfile) = vbBoolean Then Exit Sub

Open myfile For Input As #1
fila = 1
Cells.Clear
While Not EOF(1)
Line Input #1, cad
Cells(fila, "A") = fila
Cells(fila, "B") = cad
fila = fila + 1
Wend
Close #1
MsgBox ("Los datos se leyeron con éxito"), vbInformation, "AVISO"
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 maximizar formulario Excel al iniciar





Me preguntan en un foro, como maximizar un formulario de Excel al iniciar, este post responde la pregunta como maximizar un formulario de VBA de Excel al iniciar, al maximizarse queda la aplicación de Excel oculta; si requieres minimizar un formulario de Excel sigue el link; en post anteriores se presentaron otras macros que trabajan con formularios como son: como eliminar el botón X o cerrar de un formulario, como eliminar la barra de titulos de los formularios de VBA, como anular o inutilizar el botón cerrar o X de un formulario de Excel, como agregar un botón maximizar y minimizar en la barra de titulos de un formulario de Excel.

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 que se puede descargar desde el final del post, permite maximizar un formulario al iniciar, en otras palabras cuando el código de VBA llama o carga el formulario, directamente aparece maximizado.

El ejemplo también incluye en el formulario los botones maximizar y minimizar, ya que de lo contrario no habría otra forma de volver el formulario al estado original, quedando como única alternativa cerrar, para salvar este inconveniente se agregan los botones de maximizar y minimizar para mostrar el formulario maximizado, minimizado o en tamaño original.

El vídeo que sigue muestra una explicación más detallada mostrando el funcionamiento 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 como crear cartas en Word desde Excelbuscar en listbox mientras escribes en textbox, como ingresar solo texto en textboxconectar Excel con Access, libro con url de todas las macros de esta web con buscador incluido y cientos de ejemplos.






Código que se inserta en un formulario




Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const GWL_STYLE As Long = (-16)
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const maxformvba = 3
Dim hh As Long

Private Sub CommandButton1_Click()
ShowWindow hh, maxformvba
End Sub
Private Sub UserForm_Activate()
ShowWindow hh, maxformvba
End Sub

Private Sub UserForm_Initialize()
    Dim lngMyHandle As Long, lngCurrentStyle As Long, lngNewStyle As Long
    If Application.Version < 9 Then
        lngMyHandle = FindWindow("THUNDERXFRAME", Me.Caption)
    Else
        lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)
    End If
    lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
hh = FindWindow(vbNullString, Me.Caption)
End Sub


Código que se inserta en un módulo

Sub muestra()
UserForm1.Show
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 agregar boton minimizar maximizar a formulario de Excel





En este post y siguiendo la temática de los últimos post te muestro como agregar un botón minimizar y maximizar a los formularios de Excel, quizás te interese los post relacionados y presentados anteriormente, te invito a darle un vistazo son: macro que abre una serie de libros extrae datos y hace resumenrecorrer todas las hojas del libro y hacer un resumen y macro para anular el botón cerrar o X de los formularios de Exel o VBA.

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.

  

Normalmente cuando se agrega un formulario de Excel, agrega por defecto el botón cerrar o X, que como su nombre lo dice sirve para cerrar el formulario, pero que sucede si estuviéramos programando un formulario con sus controles y se necesita que el mismo se pueda minimizar y maximizar por que se necesitan leer datos en la hoja de Excel o por cualquier motivo que necesitemos tener el formulario minimizado o maximizado, tal cual viene por defecto en el formulario solo se podrá cerrar ya que es el único botón que trae incorporado.

Con esta macro muestro como además del botón cerrar que trae por defecto el formulario de Excel, como agregar un botón maximizar y otro minimizar a la barra de títulos de los formularios Excel o de VBA, es decir se verá idéntica a una ventana de Windows que tiene un botón minimizar, maximizar y cerrar, el código que se muestra se debe agregar en cada formulario que se necesite los botones.

Te invito a descargar el ejemplo, lo podrás realizar desde el final del post en forma absolutamente gratuita, el código es abierto y se puede usar sin ninguna restricción, pudiendo adaptar a tu macro o proyecto de VBA.

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 formulario




Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const GWL_STYLE As Long = (-16)

Private Sub UserForm_Initialize()
    Dim lngMyHandle As Long, lngCurrentStyle As Long, lngNewStyle As Long
    If Application.Version < 9 Then
        lngMyHandle = FindWindow("THUNDERXFRAME", Me.Caption)
    Else
        lngMyHandle = FindWindow("THUNDERDFRAME", Me.Caption)
    End If
    lngCurrentStyle = GetWindowLong(lngMyHandle, GWL_STYLE)
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    SetWindowLong lngMyHandle, GWL_STYLE, lngNewStyle
End Sub

Código que se inserta en un módulo

Sub muestra()
UserForm1.Show
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 anular el boton cerrar o X de los formularios de Excel





En post anteriores se mostró como eliminar el botón cerrar o X de la barra de titulo de los formularios de Excel, como eliminar la barra de titulos de los Formularios de Excel y con ello también el botón X como anular el botón cerrar o X de los formularios de Excel, pero no se elimina la barra de titulo ni el botón cerrar solo se bloquea o anula.
o cerrar, en este post te muestro

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 denominado macro que permite anular el botón cerrar o X de los formularios de Excel, una vez abierto el archivo se puede ejecutar la macro presionando el botón, aparece un formulario, pero si observan tiene el botón cerrar o X de todos los formularios de Excel, pero su ustedes lo presionan, no se cierra el formulario, que es la función que normalmente tiene, ello por la macro o procedimiento que tiene inserto que anula dicho botón cerrar o X del formulario, es preciso tener en cuenta que se debe agregar un botón que permita cerrar el formulario en el mismo formulario, porque sino el usuario no tendrá ninguna opción para cerrar el mismo.   .

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 CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
On Error GoTo Fin
If CloseMode <> 1 Then Cancel = True
Fin:
End Sub

Código que se inserta en un módulo

Sub Muestraform()
UserForm1.Show
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