Sobre progress bar

22/11/2005 - 22:29 por Oscar | Informe spam
Hola, espero que esten todos bien

Tengo una duda, he tratado de aplicar una barra de progreso a una
'aplicacion' que estoy tratando de de mejorar. Lo que hace es lo siguiente:

1.- Al abrirse el libro abre 10 archivos -- sin problema
2.- Activa la hoja de acuerdo al dia en que estamos en los 10 archivos --
sin problema

He intentado colocar la barra de progresso que usa Walkenbach pero la macro
que utiliza creo que no es la indicada ya que se basa en insertar numeros
aleatorios de acuerdo al cierto numero de filas, lo que no se es como debo
modificar el codigo que el nombar main...
Sub Main()
' Inserts random numbers on the active worksheet
Dim Counter As Integer
Dim RowMax As Integer, ColMax As Integer
Dim r As Integer, c As Integer
Dim PctDone As Single

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
Cells.Clear
Application.ScreenUpdating = False
Counter = 1
RowMax = 100
ColMax = 25
For r = 1 To RowMax
For c = 1 To ColMax
Cells(r, c) = Int(Rnd * 1000)
Counter = Counter + 1
Next c
PctDone = Counter / (RowMax * ColMax)
With UserForm1
.FrameProgress.Caption = Format(PctDone, "0%")
.LabelProgress.Width = PctDone * (.FrameProgress.Width - 10)
End With
' The DoEvents statement is responsible for the form updating
DoEvents
Next r
Unload UserForm1
End Sub

La macro, segun deduzco, por cada libro abierto deberia aumentar la barra de
progreso hasta el 50 por ciento, y el 50% restante deberia aumentar por cada
hoja que se active, son 10 archivos.

Perdon, pero no he sabido como adecuar y declarar las cosas, para que esa
macro funcione.

Mil gracias de antemano
Saludos desde Mexico
 

Leer las respuestas

#1 Héctor Miguel
23/11/2005 - 00:00 | Informe spam
hola, Oscar !

... he tratado de aplicar una barra de progreso a una 'aplicacion' que estoy tratando de de mejorar
1.- Al abrirse el libro abre 10 archivos -- sin problema
2.- Activa la hoja de acuerdo al dia en que estamos en los 10 archivos -- sin problema
He intentado colocar la barra de progresso que usa Walkenbach pero la macro que utiliza creo que no es la indicada [...]
La macro... por cada libro abierto deberia aumentar la barra de progreso hasta el 50 por ciento
y el 50% restante deberia aumentar por cada hoja que se active, son 10 archivos [...]



lo que no comentas es que 'tipo' de procedimiento [o intrucciones] utilizas para abrir los 10 archivos :-(
suponiendo que los tienes en una matriz, y al abrir cada uno 'activas' la hoja correspondiente...
prueba con las siguientes lineas...
en el modulo de codigo del formulario ==Private Sub UserForm_Activate()
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
Dim Libros, Sig As Byte, Total As Byte, Avance As Byte, Porc As Single
Libros = Array("Libro1", "Libro2", "Libro3", "Libro4", "Libro5", _
"Libro6", "Libto7", "Libro8", "Libro9", "Libro10")
Total = (UBound(Libros) + 1) * 2
For Sig = LBound(Libros) To UBound(Libros)
MsgBox "Abriendo... " & Libros(Sig)
Avance = Avance + 1
Porc = Avance / Total
FrameProgress.Caption = Format(Porc, "0%")
LabelProgress.Width = Porc * (FrameProgress.Width - 10)
Me.Repaint
MsgBox "Activando ""la hoja""..."
Avance = Avance + 1
Porc = Avance / Total
FrameProgress.Caption = Format(Porc, "0%")
LabelProgress.Width = Porc * (FrameProgress.Width - 10)
Me.Repaint
Next
' Unload UserForm1
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares