PROGRAMAR EN VBA MACROS DE EXCEL: Formularios
Mostrando las entradas con la etiqueta Formularios. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Formularios. Mostrar todas las entradas

Como Recorrer Todos los Textbox de un Formulario Formato Fecha Numero Moneda






En este ejemplo se muestra Como Recorrer Textbox de Excel con un Bucle For ... Next; se mostrará como realizar el recorrido de los Textbox a través de un bucle.

Es de destacar que para que funcione se debe tener Textbox cuyos nombres se crean por defecto al insertar un Textbox, es decir los nombres deben ser tipo Textbox1, Textbox2, Textbox3 ... TextboxN; si se tienen estos nombres de Textbox se pueden recorrer con un bucle For ... Next, ya sea para limpiarlos, para dar formato fecha, número, para escribir en ellos, etc., existe otra forma de limpiar todos los textbox de una sola vez en el link explico como.

Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, 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.

  

Suscribe a nuestro canal para que YouTube te avise cuando se suba nuevo contenido al canal, en el vídeo encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.






 


En el ejemplo se muestra como con un bucle For ... Next se pueden recorrer todos los textbox de un formulario, normalmente se intenta recorre los textbox de la siguiente forma:

For x =1 to 10

"Textbox" & x= "Esto es erroneo"

Next x

Lo más común es querer hacer un bucle concatenando la palabra Textbox con la variable del bucle for .. next para recorrer los Textbox de un Formulario; no obstante esto produce un error, debido a que se hace referencia al Textbox en forma incorrecta.

Lo más correcta de hacer referencia a un textbox para ser usado en un bucle es con la palabra Controls con se muestra en el código siguiente, que da formato moneda a textbox del 1 al 48 del formulario:

For x = 1 To 48
Controls("TextBox" & x) = x
Controls("TextBox" & x) = FormatNumber(CCur(Controls("TextBox" & x)))
Next

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Como Ingresar Solo Números en Textbox


Como Ingresar la Barra de Fecha en Forma Automática

Como Validar Para que se Ingrese Solo Texto en Textbox

La forma correcta de recorrer los Textbox para limpiar todos los textbox de una sola vez es la siguiente:

For x = 1 To 48
Controls("TextBox" & x) = Empty
Next


Para dar formato de fecha a todos los textbox del formulario se utiliza el siguiente código:

For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), "dddd mm/dd/yyyy")
Next


Para dar formato de moneda recorriendo todos los textbox de un formulario con un bucle for ... next, se puede utilizar los siguientes códigos

For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), "#,##0.00 ""U$S""")
Next x

For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), " ""€"" #,##0.00 ")
Next x

Para dar formato de número con separador de miles y decimales a todos los Textbox de un formulario se puede usar el siguiente código.

For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), " ""€"" #,##0.00 ")
Next x

El ejemplo Como Recorrer Todos los Textobox de un Formularo para Limpiar o Dar Formato Numero, Moneda o Fecha, se puede descargar desde el link del final; a continuación el código completo del ejemplo.

Código que se inserta en un Formulario de Excel

'**************https://programarexcel.com  **** https://youtube.com/programarexcel*********



Private Sub RecorrerTextbox()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = x
Controls("TextBox" & x) = FormatNumber(CCur(Controls("TextBox" & x)))
Next
End Sub

Private Sub CommandButton1_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = Date + x
Next
End Sub

Private Sub CommandButton2_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = Empty
Next
End Sub

Private Sub CommandButton3_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = 1000 + x
Next x
End Sub

Private Sub CommandButton4_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), "dddd mm/dd/yyyy")
Next
End Sub

Private Sub CommandButton5_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = FormatNumber(CCur(Controls("TextBox" & x)))
Next x
End Sub

Private Sub CommandButton6_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), "#,##0.00 ""U$S""")
Next x
End Sub

Private Sub CommandButton7_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), "#,##0.0000;-#.##0,0000")
Next x
End Sub

Private Sub CommandButton8_Click()
On Error Resume Next
For x = 1 To 48
Controls("TextBox" & x) = Format(Controls("TextBox" & x), " ""€"" #,##0.00 ")
Next x
End Sub


Código que se inserta en un módulo

'**************https://programarexcel.com  **** https://youtube.com/programarexcel*********

#If VBA7 And Win64 Then

'Si es de 64 bits

Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr

Public Declare PtrSafe Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr

Public Declare PtrSafe Function GetWindowLongPtr Lib "USER32" Alias "GetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr

Public Declare PtrSafe Function SetWindowLongPtr Lib "USER32" Alias "SetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr

Public Declare PtrSafe Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As LongPtr

Public Declare PtrSafe Function RegOpenKeyA Lib "advapire32.dll" (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr

#Else

'Si es de 32 bits

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As Long

Public Declare Function RegOpenKeyA Lib "advapire32.dll" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

#End If

Sub muestra1()

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 Crear Una Autoforma que se Desplace a Medida que se Hace Scroll






En este ejemplo se muestra como simular una autoforma flotante que se desplaza por la hoja de Excel con scroll, es decir que a medida que se mueva con scroll o barra de desplazamiento hacia abajo o la derecha la autoforma siempre estará visible en la hoja de Excel, a dicha autoforma se le puede asignar una macro que ejecute un procedimiento y siempre estará visible para poder hacer click en la autoforma y por ende ejecutar la macro.

Otros ejemplos con formularios de Excel puedes verlos en el playlist de nuestro canal que trata sobre el tema haz click en el siguiente link Formularios de Excel.

Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, 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.

  

Suscribe a nuestro canal para que YouTube te avise cuando se suba nuevo contenido al canal, en el vídeo encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.







 


Desde el link del final se puede descargar el ejemplo. Abierto el libro de Excel se pude observar una autoforma, en realidad es un formulario que simula una autoforma, al desplazarse haciendo scroll por la hoja del Libro de Excel, ya sea mediante scroll con el mouse o moviendo las barras de desplazamiento en cualquier dirección, la autoforma es un verdadero botón flotante que se autodesplaza por todo el libro de Excel estando siempre visible.


⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Como abrir formularios de Excel desde un Listbox


Como Eliminar el Boton X o Cerrar de un Formulario de Excel

Como Crear un Menú Flotante que se Desplace por la Hoja Excel con Scroll o Barras Desplazamiento



En realidad la autoforma es una imagen que emula una flecha clásica de una autoforma, la cual está montada sobre un formulario de Excel al cual se le ha quitado la barra de titulos donde normalmente está la X de cerrar el formulario.

Para lograr esto se pone en un modulo el siguiente código:

mhWndForm = FindWindow("ThunderDFrame", MeCaption)

lSty = GetWindowLong(mhWndForm, -16)

lSty = lSty And Not &HC00000

SetWindowLong mhWndForm, -16, lSty

DrawMenuBar mhWndForm

Es preciso recordar que el formulario se debe poner en modo no modal, para ello se puede hacer mediante código o directamente en las propiedades, mediante código se debe escribir el siguiente código en el evento inicializar del formulario:

UserFrom1.Show vbModal


En el caso que se quiera directamente establecerlos en las propiedades se debe cambiar las propiedades del formulario ShowModal a False.

ShowModal=False debe establecer en las propiedades del formulario.

El Ejemplo de Macro llamado Como Crear Boton Flotante o Una Autoforma que se Desplace a Medida que se Hace Scroll se puede descargar desde el final del post, a continuación el código contenido en el ejemplo.


Código que se inserta en un Formulario de Excel

'*************** https://programarexcel.com   ******** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ******
Dim FormX, FormY

Private Sub CommandButton2_Click()
MsgBox ("Visita http://programarexcel.com"), vbInformation, "AVISO"
End Sub

Private Sub UserForm_Click()
MsgBox ("Visita https://programarexcel.com"), vbInformation, "AVISO"
End Sub

Private Sub UserForm_Initialize()
Dim sql As String, I As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
EliminarTitulo Me.Caption
With UserForm4
.Height = 42
.Top = 300
.Left = 80
.Width = 60
End With
End Sub
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
If Button = 1 Then FormX = x ': FormY = Y
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
If Button = 1 Then Me.Left = Me.Left + (x - FormX) ': Me.Top = Me.Top + (Y - FormY)
End Sub




Código que se inserta en un módulo

#If VBA7 And Win64 Then

'Si es de 64 bits

Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr

Public Declare PtrSafe Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr

Public Declare PtrSafe Function GetWindowLongPtr Lib "USER32" Alias "GetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr

Public Declare PtrSafe Function SetWindowLongPtr Lib "USER32" Alias "SetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr

Public Declare PtrSafe Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As LongPtr

Public Declare PtrSafe Function RegOpenKeyA Lib "advapire32.dll" (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr

#Else

'Si es de 32 bits

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As Long

Public Declare Function RegOpenKeyA Lib "advapire32.dll" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

#End If


'*************** https://programarexcel.com   ******** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ******

Sub EliminarTitulo(MeCaption)

Dim lSty As Long

Dim hMenu As Long

Dim mhWndForm As Long

mhWndForm = FindWindow("ThunderDFrame", MeCaption)

lSty = GetWindowLong(mhWndForm, -16)

lSty = lSty And Not &HC00000

SetWindowLong mhWndForm, -16, lSty

DrawMenuBar mhWndForm

End Sub


Sub Muestra()

UserForm4.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 Abrir Formularios Desde un Listbox






Me preguntan en un foro Como Abrir un Formulario Desde un Listbox de Excel donde se listan los formularios de una macro, el ejemplo muestra como listar unas serie de formularios que componen una aplicación de Excel programada en VBA, luego cargar el el nombre de los Formularios en un Listbox de Excel y  abrir los formularios haciendo click en el item del Listbox que tiene el nombre del formulario.

Si estás trabajando con listbox quizás quieras aprender más sobre este objeto de VBA para Excel, en el link encontrarás muchos ejemplos que serán de utilidad relacionados con listbox de Excel, no olvides suscribir al canal de YouTube para pode recibir una notificación cuando exista nuevo contendido.

Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, 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.

  

Suscribe a nuestro canal para que YouTube te avise cuando se suba nuevo contenido al canal, en el vídeo encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.






 


El ejemplo es bastante simple y útil permite subir el nombre de los formulario en un Listbox de Excel, hacer click en el item que contiene el nombre del formulario y abrir el formulario, normalmente cuando se hace click en un item es para buscar en la base de datos o guardar el dato que está en el listbox en una base de datos, pero en este caso se usará para abrir un formulario.

En este ejemplo los formularios se usan con el nombre por defecto, es decir Userform1, Userform2, Userform2.... UserformX, cuando se inicia el formulario 1 por medio de un bucle que carga en el listbox el nombre de los formularios, el bucle que realizar lo mencionado es el siguiente:

For i = 2 To 6
       Me.ListBox1.AddItem "Userform" & i

Next i

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Como Recorrer una Cadena de Caracteres


Como Crear una Factura Guardar en la Base de Datos en PDF en XLSX y Enviar por MAIL

Como hacer un link o hiperlink a google maps con Excel

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛



⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Luego en el evento Doble Click del Listbox que está en el formulario 1 y donde se han cargado los nombres de los distintos formulario, al hacer doble click en el item del Listbox de Excel con el nombre del formulario procede a abrir dicho Formulario de Excel, eso se hace con el siguiente código:

fila = UserForm1.ListBox1.ListIndex
formu = a.List(fila)
UserForms.Add(formu).Show

El primer código determinar cual es el número de fila en la cual se ha hecho doble click, el código siguiente en la variable "formu" se guarda el nombre del item seleccionado, que en este caso contendrá el nombre del formulario que se requiere abrir, luego el siguiente código permite abrir el formulario seleccionado, cuyo nombre estaba en el item elegido del listbox.

Seguidamente se muestra tódo el código contendido en el ejemplo que se puede descargar desde el final del post y cuyo ejemplo fue denominado Como Abrir Formularios Desde un Listbox.


Código que se inserta en un Formulario 1 de Excel

'**************https://programarexcel.com  **** https://youtube.com/programarexcel*********



Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Set a = UserForm1.ListBox1
fila = UserForm1.ListBox1.ListIndex
formu = a.List(fila)
UserForms.Add(formu).Show
End Sub

Private Sub UserForm_Initialize()
For i = 2 To 6
       Me.ListBox1.AddItem "Userform" & i
Next i
End Sub

Código que se inserta en un Formulario 2 de Excel

Private Sub Label1_Click()
ActiveWorkbook.FollowHyperlink "https://www.programarexcel.com"
End Sub

Private Sub Label2_Click()
ActiveWorkbook.FollowHyperlink "https://www.youtube.com/c/programarexcel?sub_confirmation=1"
End Sub

Código que se inserta en un Formulario 3 de Excel

Private Sub Label1_Click()
ActiveWorkbook.FollowHyperlink "https://www.programarexcel.com"
End Sub

Private Sub Label2_Click()
ActiveWorkbook.FollowHyperlink "https://www.youtube.com/c/programarexcel?sub_confirmation=1"
End Sub



Código que se inserta en un Formulario 4 de Excel

Private Sub Label1_Click()
ActiveWorkbook.FollowHyperlink "https://www.programarexcel.com"
End Sub

Private Sub Label2_Click()
ActiveWorkbook.FollowHyperlink "https://www.youtube.com/c/programarexcel?sub_confirmation=1"
End Sub


Código que se inserta en un Formulario 5 de Excel

Private Sub Label1_Click()
ActiveWorkbook.FollowHyperlink "https://www.programarexcel.com"
End Sub

Private Sub Label2_Click()
ActiveWorkbook.FollowHyperlink "https://www.youtube.com/c/programarexcel?sub_confirmation=1"
End Sub


Código que se inserta en un Formulario 6 de Excel

Private Sub Label1_Click()
ActiveWorkbook.FollowHyperlink "https://www.programarexcel.com"
End Sub

Private Sub Label2_Click()
ActiveWorkbook.FollowHyperlink "https://www.youtube.com/c/programarexcel?sub_confirmation=1"
End Sub



Código que se inserta en un módulo

'**************https://programarexcel.com  **** https://youtube.com/programarexcel*********

#If VBA7 And Win64 Then

'Si es de 64 bits

Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr

Public Declare PtrSafe Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr

Public Declare PtrSafe Function GetWindowLongPtr Lib "USER32" Alias "GetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr

Public Declare PtrSafe Function SetWindowLongPtr Lib "USER32" Alias "SetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr

Public Declare PtrSafe Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As LongPtr

Public Declare PtrSafe Function RegOpenKeyA Lib "advapire32.dll" (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr

#Else

'Si es de 32 bits

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As Long

Public Declare Function RegOpenKeyA Lib "advapire32.dll" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

#End If

Sub muestra1()

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 Sumar Textbox en Tiempo Real o Simultaneamente





La macro que se presenta en este post tiene origen en una sugerencia de un suscriptor de nuestro canal de YouTube es una macro que suma textbox en tiempo real, simultáneamente o a medida que se ingresan números.

Desde el final del post se puede descargar el ejemplo en forma gratuita sin ninguna restricción, el código se puede adaptar a cada necesidad, Aporta por favor para sostener el sitio si está dentro de tus posibilidades, desde ya muchas gracias.

Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, 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 vídeo verás la macro en acción con una explicación más detallada de su codificación y funcionamiento, 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 Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mail, trabajando con filas, celdas, columnas, rangos y muchos ejemplos más.









 


La macro que se presenta es muy simple consiste en un formulario de Excel con varios textbox, que al ingresar un importe en el textbox, simultáneamente o en tiempo real va sumando los datos ingresados en otro textbox.

Al presionar el botón que está en el archivo de ejemplo se muestra un formulario con tres textbox donde se ingresan los datos y un cuarto textbox donde se van sumando automáticamente o en tiemporreal a medida que se ingresan los datos en los otros textbox.


⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Como mostrar imagen animada en formulario Excel


Como agregar botón maximizar minimizar a formulario de Excel

Como buscar y cargar imagen de un catalogo en formulario Excel

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛



⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Se debe dimensionar variables como tipo currency, son las variables t1, t2 y t3 que corresponde a los textbox1, textbox2 y textbox3

En el ejemplo se detecta si el dato ingresado es numérico, en ese caso, carga en las variables t1, t2 o t3 los respectivos datos de los textbox, a medida que se van ingresando los datos en estos textbox en el textbox4 en forma simultanea o tiempo real se van sumando los datos cargados en textbox.

Se debe tener presente que se debe agregar el código en el evento Change del textbox y en cada uno de los textbox sobre los cuales se desea sumar los datos ingresados en forma simultanea, en tiempo real o a medida que se escribe en textbox.

El código completo del ejemplo Como Sumar Textbox en Tiempo Real, se encuentra a continuación.


Código que se inserta en un Userform

Private Sub TextBox1_Change()
Dim t1 As Currency, t2 As Currency, t3 As Currency
On Error Resume Next
UserForm1.TextBox1 = Replace(UserForm1.TextBox1, ".", ",")  'Si se usa . como separador decimal cambiar punto Replace(UserForm1.TextBox1, ",", ".")
If IsNumeric(UserForm1.TextBox1) Then t1 = CDec(UserForm1.TextBox1)
If IsNumeric(UserForm1.TextBox2) Then t2 = CDec(UserForm1.TextBox2)
If IsNumeric(UserForm1.TextBox3) Then t3 = CDec(UserForm1.TextBox3)
UserForm1.TextBox4 = t1 + t2 + t3
End Sub


Private Sub TextBox2_Change()
Dim t1 As Currency, t2 As Currency, t3 As Currency
On Error Resume Next
UserForm1.TextBox2 = Replace(UserForm1.TextBox2, ".", ",")  'Si se usa . como separador decimal cambiar punto Replace(UserForm1.TextBox2, ",", ".")
If IsNumeric(UserForm1.TextBox1) Then t1 = CDec(UserForm1.TextBox1)
If IsNumeric(UserForm1.TextBox2) Then t2 = CDec(UserForm1.TextBox2)
If IsNumeric(UserForm1.TextBox3) Then t3 = CDec(UserForm1.TextBox3)
UserForm1.TextBox4 = t1 + t2 + t3
End Sub

Private Sub TextBox3_Change()
Dim t1 As Currency, t2 As Currency, t3 As Currency
On Error Resume Next
UserForm1.TextBox3 = Replace(UserForm1.TextBox3, ".", ",") 'Si se usa . como separador decimal cambiar punto Replace(UserForm1.TextBox3, ",", ".")
If IsNumeric(UserForm1.TextBox1) Then t1 = CDec(UserForm1.TextBox1)
If IsNumeric(UserForm1.TextBox2) Then t2 = CDec(UserForm1.TextBox2)
If IsNumeric(UserForm1.TextBox3) Then t3 = CDec(UserForm1.TextBox3)
UserForm1.TextBox4 = t1 + t2 + t3
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      
4.70/5 – 1379