Progressbar para evaluar

21/07/2007 - 15:32 por AgerGaston | Informe spam
Hola a todos.
Hace mucho tiempo baje un PDF de la red de Visual Basic, dentro del cual
tiene muchos articulos. Puntualmente tiene un ejemplo del control
progressbar, lo copie tal cual en VBA y como era de esperar no me funciono.

Se los copio para que me digan que linea debo modificar (si se puede):

Option Explicit
Dim copia As Boolean

Private Sub command1_click()
Dim conta As Byte
Dim conta2 As Long

Label1.Visible = True
ProgressBar1.Visible = True
command1.Visible = False
command3.Visible = True
form1.Refresh

While (conta < 100) And (copia = True)
conta = conta + 1
ProgressBar1.Value = conta
For conta2 = 1 To 100000: Next
DoEvents

Wend
Label1.Caption = "copia completada"
command2.Visible = True
command3.Visible = False

End Sub

Private Sub command2_click()
End
End Sub

Private Sub command3_click()
copia = False 'esto detendra el bucle del boton command1
ProgressBar1.Visible = False
Label1.Caption = "copia cancelada por el usuario"
command2.Visible = True
End Sub

Private Sub form_load()
copia = True
End Sub

Ademas de esta tiene un userform con botones, labels, etc

Gracias y saludos

Preguntas similare

Leer las respuestas

#1 zz
21/07/2007 - 16:47 | Informe spam
Los nombres de los botones en VBA usualmente,por lo general y casi siempre,
comienzan con CommanButtonX donde x es el numero del control, podría
sustituir el nombre especificado en el codigo original, además el evento
Form_Load no existe en los formularios de VBA, puedes sustituirlo por
Userform_Initialize para que se ejecute al instanciar el form.

aparte de eso, no veo ninguna otra razon para que no funcione aparte de que
es necesario tener agregado el control ProgressBar en el cuadro de
controles.



espero que te sirva
Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
blocking it's execution.
Walter R . [zz]


"AgerGaston" wrote in message
news:
| Hola a todos.
| Hace mucho tiempo baje un PDF de la red de Visual Basic, dentro del cual
| tiene muchos articulos. Puntualmente tiene un ejemplo del control
| progressbar, lo copie tal cual en VBA y como era de esperar no me
funciono.
|
| Se los copio para que me digan que linea debo modificar (si se puede):
|
| Option Explicit
| Dim copia As Boolean
|
| Private Sub command1_click()
| Dim conta As Byte
| Dim conta2 As Long
|
| Label1.Visible = True
| ProgressBar1.Visible = True
| command1.Visible = False
| command3.Visible = True
| form1.Refresh
|
| While (conta < 100) And (copia = True)
| conta = conta + 1
| ProgressBar1.Value = conta
| For conta2 = 1 To 100000: Next
| DoEvents
|
| Wend
| Label1.Caption = "copia completada"
| command2.Visible = True
| command3.Visible = False
|
| End Sub
|
| Private Sub command2_click()
| End
| End Sub
|
| Private Sub command3_click()
| copia = False 'esto detendra el bucle del boton command1
| ProgressBar1.Visible = False
| Label1.Caption = "copia cancelada por el usuario"
| command2.Visible = True
| End Sub
|
| Private Sub form_load()
| copia = True
| End Sub
|
| Ademas de esta tiene un userform con botones, labels, etc
|
| Gracias y saludos
|
Respuesta Responder a este mensaje
#2 AgerGaston
21/07/2007 - 17:20 | Informe spam
Hola ZZ, gracias por responder.

Bueno reemplace todo lo que me indicaste, pero me da un error en la
siguiente linea.

Userform_Initialize (antes decia Form1.refresh)

Con el siguiente mensaje: ERROR DE COMPILACION NO SE HA DEFINIDO SUB O
FUNCTION.

El comando completo es asi:

Private Sub CommandButton1_click()
Dim conta As Byte
Dim conta2 As Long

Label1.Visible = True
ProgressBar1.Visible = True
CommandButton1.Visible = False
CommandButton3.Visible = True
Userform_Initialize (antes decia Form1.refresh)

While (conta < 100) And (copia = True)
conta = conta + 1
ProgressBar1.Value = conta
For conta2 = 1 To 100000: Next
DoEvents

Wend
Label1.Caption = "copia completada"
CommandButton2.Visible = True
CommandButton3.Visible = False

End Sub

Que me falta?. Gracias



"zz" escribió:



Los nombres de los botones en VBA usualmente,por lo general y casi siempre,
comienzan con CommanButtonX donde x es el numero del control, podría
sustituir el nombre especificado en el codigo original, además el evento
Form_Load no existe en los formularios de VBA, puedes sustituirlo por
Userform_Initialize para que se ejecute al instanciar el form.

aparte de eso, no veo ninguna otra razon para que no funcione aparte de que
es necesario tener agregado el control ProgressBar en el cuadro de
controles.



espero que te sirva
Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
blocking it's execution.
Walter R . [zz]


"AgerGaston" wrote in message
news:
| Hola a todos.
| Hace mucho tiempo baje un PDF de la red de Visual Basic, dentro del cual
| tiene muchos articulos. Puntualmente tiene un ejemplo del control
| progressbar, lo copie tal cual en VBA y como era de esperar no me
funciono.
|
| Se los copio para que me digan que linea debo modificar (si se puede):
|
| Option Explicit
| Dim copia As Boolean
|
| Private Sub command1_click()
| Dim conta As Byte
| Dim conta2 As Long
|
| Label1.Visible = True
| ProgressBar1.Visible = True
| command1.Visible = False
| command3.Visible = True
| form1.Refresh
|
| While (conta < 100) And (copia = True)
| conta = conta + 1
| ProgressBar1.Value = conta
| For conta2 = 1 To 100000: Next
| DoEvents
|
| Wend
| Label1.Caption = "copia completada"
| command2.Visible = True
| command3.Visible = False
|
| End Sub
|
| Private Sub command2_click()
| End
| End Sub
|
| Private Sub command3_click()
| copia = False 'esto detendra el bucle del boton command1
| ProgressBar1.Visible = False
| Label1.Caption = "copia cancelada por el usuario"
| command2.Visible = True
| End Sub
|
| Private Sub form_load()
| copia = True
| End Sub
|
| Ademas de esta tiene un userform con botones, labels, etc
|
| Gracias y saludos
|
Respuesta Responder a este mensaje
#3 zz
21/07/2007 - 17:28 | Informe spam
Cambialo por Me.Repaint, el Userform_Initialize se ejecuta cuando se carga
el userform y no lo puedes invocar desde un metodo o funcion, es un metodo
del Userform, debería aparecerte en la sección "declaraciones" dedl editor
de codigo.

la linea Form1.Refresh fuerza a dibujar/actualizar de nuevo el form en
Visual Basic Clásico.



Saludos
Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
blocking it's execution.
Walter R . [zz]

"AgerGaston" wrote in message
news:
| Hola ZZ, gracias por responder.
|
| Bueno reemplace todo lo que me indicaste, pero me da un error en la
| siguiente linea.
|
| Userform_Initialize (antes decia Form1.refresh)
|
| Con el siguiente mensaje: ERROR DE COMPILACION NO SE HA DEFINIDO SUB O
| FUNCTION.
|
| El comando completo es asi:
|
| Private Sub CommandButton1_click()
| Dim conta As Byte
| Dim conta2 As Long
|
| Label1.Visible = True
| ProgressBar1.Visible = True
| CommandButton1.Visible = False
| CommandButton3.Visible = True
| Userform_Initialize (antes decia Form1.refresh)
|
| While (conta < 100) And (copia = True)
| conta = conta + 1
| ProgressBar1.Value = conta
| For conta2 = 1 To 100000: Next
| DoEvents
|
| Wend
| Label1.Caption = "copia completada"
| CommandButton2.Visible = True
| CommandButton3.Visible = False
|
| End Sub
|
| Que me falta?. Gracias
|
|
|
| "zz" escribió:
|
|
|
| Los nombres de los botones en VBA usualmente,por lo general y casi
siempre,
| comienzan con CommanButtonX donde x es el numero del control, podría
| sustituir el nombre especificado en el codigo original, además el evento
| Form_Load no existe en los formularios de VBA, puedes sustituirlo por
| Userform_Initialize para que se ejecute al instanciar el form.
|
| aparte de eso, no veo ninguna otra razon para que no funcione aparte de
que
| es necesario tener agregado el control ProgressBar en el cuadro de
| controles.
|
|
|
| --
| espero que te sirva
| --
| --
| Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
| blocking it's execution.
| --
| Walter R . [zz]
|
|
| "AgerGaston" wrote in message
| news:
| | Hola a todos.
| | Hace mucho tiempo baje un PDF de la red de Visual Basic, dentro del cual
| | tiene muchos articulos. Puntualmente tiene un ejemplo del control
| | progressbar, lo copie tal cual en VBA y como era de esperar no me
| funciono.
| |
| | Se los copio para que me digan que linea debo modificar (si se puede):
| |
| | Option Explicit
| | Dim copia As Boolean
| |
| | Private Sub command1_click()
| | Dim conta As Byte
| | Dim conta2 As Long
| |
| | Label1.Visible = True
| | ProgressBar1.Visible = True
| | command1.Visible = False
| | command3.Visible = True
| | form1.Refresh
| |
| | While (conta < 100) And (copia = True)
| | conta = conta + 1
| | ProgressBar1.Value = conta
| | For conta2 = 1 To 100000: Next
| | DoEvents
| |
| | Wend
| | Label1.Caption = "copia completada"
| | command2.Visible = True
| | command3.Visible = False
| |
| | End Sub
| |
| | Private Sub command2_click()
| | End
| | End Sub
| |
| | Private Sub command3_click()
| | copia = False 'esto detendra el bucle del boton command1
| | ProgressBar1.Visible = False
| | Label1.Caption = "copia cancelada por el usuario"
| | command2.Visible = True
| | End Sub
| |
| | Private Sub form_load()
| | copia = True
| | End Sub
| |
| | Ademas de esta tiene un userform con botones, labels, etc
| |
| | Gracias y saludos
| |
|
|
|
Respuesta Responder a este mensaje
#4 AgerGaston
21/07/2007 - 17:48 | Informe spam
Si ahora si, funciono OK.

Lo ultimo, tengo varios ejemplos, modelos, formas, colores, tipos, etc etc
etc, de progressbar, bajadas de varias paginas de la red.

Lo que no se y no entiendo es, como inserto un progressbar (no en este caso)
en una macro cualquiera ??

Tengo progressbar que leen la cantidad de filas, que miden el tiempo
(mm:ss), que miden en porcentaje la evolucion, de una linea y de dos, etc etc
etc.

Como las incluyo en cualquier tipo de macro ??

Gracias y saludos


"zz" escribió:

Cambialo por Me.Repaint, el Userform_Initialize se ejecuta cuando se carga
el userform y no lo puedes invocar desde un metodo o funcion, es un metodo
del Userform, debería aparecerte en la sección "declaraciones" dedl editor
de codigo.

la linea Form1.Refresh fuerza a dibujar/actualizar de nuevo el form en
Visual Basic Clásico.



Saludos
Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
blocking it's execution.
Walter R . [zz]

"AgerGaston" wrote in message
news:
| Hola ZZ, gracias por responder.
|
| Bueno reemplace todo lo que me indicaste, pero me da un error en la
| siguiente linea.
|
| Userform_Initialize (antes decia Form1.refresh)
|
| Con el siguiente mensaje: ERROR DE COMPILACION NO SE HA DEFINIDO SUB O
| FUNCTION.
|
| El comando completo es asi:
|
| Private Sub CommandButton1_click()
| Dim conta As Byte
| Dim conta2 As Long
|
| Label1.Visible = True
| ProgressBar1.Visible = True
| CommandButton1.Visible = False
| CommandButton3.Visible = True
| Userform_Initialize (antes decia Form1.refresh)
|
| While (conta < 100) And (copia = True)
| conta = conta + 1
| ProgressBar1.Value = conta
| For conta2 = 1 To 100000: Next
| DoEvents
|
| Wend
| Label1.Caption = "copia completada"
| CommandButton2.Visible = True
| CommandButton3.Visible = False
|
| End Sub
|
| Que me falta?. Gracias
|
|
|
| "zz" escribió:
|
|
|
| Los nombres de los botones en VBA usualmente,por lo general y casi
siempre,
| comienzan con CommanButtonX donde x es el numero del control, podría
| sustituir el nombre especificado en el codigo original, además el evento
| Form_Load no existe en los formularios de VBA, puedes sustituirlo por
| Userform_Initialize para que se ejecute al instanciar el form.
|
| aparte de eso, no veo ninguna otra razon para que no funcione aparte de
que
| es necesario tener agregado el control ProgressBar en el cuadro de
| controles.
|
|
|
| --
| espero que te sirva
| --
| --
| Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
| blocking it's execution.
| --
| Walter R . [zz]
|
|
| "AgerGaston" wrote in message
| news:
| | Hola a todos.
| | Hace mucho tiempo baje un PDF de la red de Visual Basic, dentro del cual
| | tiene muchos articulos. Puntualmente tiene un ejemplo del control
| | progressbar, lo copie tal cual en VBA y como era de esperar no me
| funciono.
| |
| | Se los copio para que me digan que linea debo modificar (si se puede):
| |
| | Option Explicit
| | Dim copia As Boolean
| |
| | Private Sub command1_click()
| | Dim conta As Byte
| | Dim conta2 As Long
| |
| | Label1.Visible = True
| | ProgressBar1.Visible = True
| | command1.Visible = False
| | command3.Visible = True
| | form1.Refresh
| |
| | While (conta < 100) And (copia = True)
| | conta = conta + 1
| | ProgressBar1.Value = conta
| | For conta2 = 1 To 100000: Next
| | DoEvents
| |
| | Wend
| | Label1.Caption = "copia completada"
| | command2.Visible = True
| | command3.Visible = False
| |
| | End Sub
| |
| | Private Sub command2_click()
| | End
| | End Sub
| |
| | Private Sub command3_click()
| | copia = False 'esto detendra el bucle del boton command1
| | ProgressBar1.Visible = False
| | Label1.Caption = "copia cancelada por el usuario"
| | command2.Visible = True
| | End Sub
| |
| | Private Sub form_load()
| | copia = True
| | End Sub
| |
| | Ademas de esta tiene un userform con botones, labels, etc
| |
| | Gracias y saludos
| |
|
|
|
Respuesta Responder a este mensaje
#5 zz
21/07/2007 - 18:02 | Informe spam
yo abandoné el uso de las progressbar desde hace tiempo, me parece que el
uso de una funcion generica que actue sobre un label es más comodo y más
rapido, donde quiera que necesite mostrar un progreso en excel, me gusta
usar algo como esto:

LblProgreso = CStr(Application.WorksheetFunction.Rept(Chr(124),
percentage_progreso) & " " & "%")

muestra una barra del tipo "||||||||||||" en un label, es rapida y no
necesitas refrescar todo el formulario para actualizarla, solo tienes que
actualizar tu porcentaje de progreso o tu numero de items procesados y
asignarlo a la variable Percentage_progreso y la formula se encarga de
actualizar el despliegue de la "barra" en el label.

personalmente me gusta más por el tema del aspecto de los controles de VBA y
la imposibilidad de cambiar el color de la barra, me gusta que los colores
del form se correspondan con el tema general de la aplicación.



Espero que te ayude
Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
blocking it's execution.
Walter R . [zz]

"AgerGaston" wrote in message
news:
| Si ahora si, funciono OK.
|
| Lo ultimo, tengo varios ejemplos, modelos, formas, colores, tipos, etc etc
| etc, de progressbar, bajadas de varias paginas de la red.
|
| Lo que no se y no entiendo es, como inserto un progressbar (no en este
caso)
| en una macro cualquiera ??
|
| Tengo progressbar que leen la cantidad de filas, que miden el tiempo
| (mm:ss), que miden en porcentaje la evolucion, de una linea y de dos, etc
etc
| etc.
|
| Como las incluyo en cualquier tipo de macro ??
|
| Gracias y saludos
|
|
| "zz" escribió:
|
| Cambialo por Me.Repaint, el Userform_Initialize se ejecuta cuando se
carga
| el userform y no lo puedes invocar desde un metodo o funcion, es un metodo
| del Userform, debería aparecerte en la sección "declaraciones" dedl editor
| de codigo.
|
| la linea Form1.Refresh fuerza a dibujar/actualizar de nuevo el form en
| Visual Basic Clásico.
|
|
|
| --
| Saludos
| --
| --
| Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
| blocking it's execution.
| --
| Walter R . [zz]
|
| "AgerGaston" wrote in message
| news:
| | Hola ZZ, gracias por responder.
| |
| | Bueno reemplace todo lo que me indicaste, pero me da un error en la
| | siguiente linea.
| |
| | Userform_Initialize (antes decia Form1.refresh)
| |
| | Con el siguiente mensaje: ERROR DE COMPILACION NO SE HA DEFINIDO SUB O
| | FUNCTION.
| |
| | El comando completo es asi:
| |
| | Private Sub CommandButton1_click()
| | Dim conta As Byte
| | Dim conta2 As Long
| |
| | Label1.Visible = True
| | ProgressBar1.Visible = True
| | CommandButton1.Visible = False
| | CommandButton3.Visible = True
| | Userform_Initialize (antes decia Form1.refresh)
| |
| | While (conta < 100) And (copia = True)
| | conta = conta + 1
| | ProgressBar1.Value = conta
| | For conta2 = 1 To 100000: Next
| | DoEvents
| |
| | Wend
| | Label1.Caption = "copia completada"
| | CommandButton2.Visible = True
| | CommandButton3.Visible = False
| |
| | End Sub
| |
| | Que me falta?. Gracias
| |
| |
| |
| | "zz" escribió:
| |
| |
| |
| | Los nombres de los botones en VBA usualmente,por lo general y casi
| siempre,
| | comienzan con CommanButtonX donde x es el numero del control, podría
| | sustituir el nombre especificado en el codigo original, además el evento
| | Form_Load no existe en los formularios de VBA, puedes sustituirlo por
| | Userform_Initialize para que se ejecute al instanciar el form.
| |
| | aparte de eso, no veo ninguna otra razon para que no funcione aparte de
| que
| | es necesario tener agregado el control ProgressBar en el cuadro de
| | controles.
| |
| |
| |
| | --
| | espero que te sirva
| | --
| | --
| | Error: App. "GetUpAndWork.exe" couldn't be loaded, "ImToTired.exe" is
| | blocking it's execution.
| | --
| | Walter R . [zz]
| |
| |
| | "AgerGaston" wrote in message
| | news:
| | | Hola a todos.
| | | Hace mucho tiempo baje un PDF de la red de Visual Basic, dentro del
cual
| | | tiene muchos articulos. Puntualmente tiene un ejemplo del control
| | | progressbar, lo copie tal cual en VBA y como era de esperar no me
| | funciono.
| | |
| | | Se los copio para que me digan que linea debo modificar (si se puede):
| | |
| | | Option Explicit
| | | Dim copia As Boolean
| | |
| | | Private Sub command1_click()
| | | Dim conta As Byte
| | | Dim conta2 As Long
| | |
| | | Label1.Visible = True
| | | ProgressBar1.Visible = True
| | | command1.Visible = False
| | | command3.Visible = True
| | | form1.Refresh
| | |
| | | While (conta < 100) And (copia = True)
| | | conta = conta + 1
| | | ProgressBar1.Value = conta
| | | For conta2 = 1 To 100000: Next
| | | DoEvents
| | |
| | | Wend
| | | Label1.Caption = "copia completada"
| | | command2.Visible = True
| | | command3.Visible = False
| | |
| | | End Sub
| | |
| | | Private Sub command2_click()
| | | End
| | | End Sub
| | |
| | | Private Sub command3_click()
| | | copia = False 'esto detendra el bucle del boton command1
| | | ProgressBar1.Visible = False
| | | Label1.Caption = "copia cancelada por el usuario"
| | | command2.Visible = True
| | | End Sub
| | |
| | | Private Sub form_load()
| | | copia = True
| | | End Sub
| | |
| | | Ademas de esta tiene un userform con botones, labels, etc
| | |
| | | Gracias y saludos
| | |
| |
| |
| |
|
|
|
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida