Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

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.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

 
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://macrosenexcel.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://macrosenexcel.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