Excel - Abrir archivos desde el ayudante

 
Vista:

Abrir archivos desde el ayudante

Publicado por CarLos (14 intervenciones) el 17/07/2007 19:18:35
Hola Foro, he creado una pequeña macro que selecciona varios campos en varios XLS, y los importa a una tabla. Despues un bucle revisa los resultados y muestra mediante el Ayudante de Office los archivos (XLS)con errores. El problema es que no soy capaz crear el codigo que abra los XLS con error. (basicamente no consigo que la variable del procedimiento que crea el globo pase al procedimiento que ejecuta CallBack intacta)

Adjunto parte del codigo: Agradezco ideas & ayuda

Public Sub CompOT()
Dim HrMax, CamEr, cl, i, lbtn, lPriv
Dim bln As Balloon
Dim Nreg As Integer
HrMax = Range("V1").Value "Asigna valor celda V1 como diferencia maxima para localizar error en hora fin
Nreg = Range("T2").Value
Set bln = Assistant.NewBalloon
i = 1
For cl = 2 To Nreg
If Range("L" & cl).Value > HrMax Then " Localiza error en hora fin
CamEr = "Hora Fin"
GoTo RegError
ElseIf Range("L" & cl).Value < 0 Then "Localiza error en hora inicio
CamEr = "Hora Ini"
GoTo RegError
Else
If cl = Nreg And i = 1 Then "Activa boton calculo
GoTo Terminar
Else
GoTo Siguiente
End If
End If

"---------------------------------------Activa ayudante
RegError:
With Assistant
.Filename = "Rocky.acs"
.On = True
.Visible = True
.Move xLeft:=400, yTop:=300
End With
"---------------------------------------Genera globo con informacion
With bln
.BalloonType = msoBalloonTypeButtons
.Icon = msoIconAlert
.Button = msoButtonSetOK
.Heading = "{cf 252}Resultado del control de registros"
.Text = "Se han encontrado{cf 249} " & i & " {cf 0}errores:"
lPriv = ThisWorkbook.Path & "" & Range("A" & cl).Value

If i < 5 Then
.Labels(i).Text = "OT: {cf 249}" & Range("C" & cl).Value & "{cf 0}, Nombre Archivo:{cf 252} " & Range("A" & cl) & ",{cf 0} Apartado:{cf 249} " & CamEr & " "

i = i + 1
.Mode = msoModeModeless
.Callback = "ValidBall"
.Show

Else
MsgBox "Se ha superado el numero maximo de registros " & Chr(13) & _
"Debes reparar los errores, antes de continuar", vbInformation, "Maximo numero de errores"
End If

End With
"-------------------------------------------------------
Siguiente:
Next cl
Exit Sub
Terminar:
Call MuestraBoton
End Sub
Sub ValidBall(bln As Balloon, lbtn As Long, _
lPriv As Long) " Cierra ayudante y mensaje informativo
Dim Lmt, LmtE As Integer
Lmt = Range("T2").Value
LmtE = Range("W6").Value
Assistant.Animation = msoAnimationSearching

Select Case lbtn
Case -1
bln.Close
With Assistant
.On = False
.Visible = False
End With
"--------------------------------------Elimina todos los registros para nueva carga
Range("A2:E" & Lmt).ClearContents
Range("G2:H" & Lmt).ClearContents
Range("J2:K" & Lmt).ClearContents
Range("M2:S" & Lmt).ClearContents
Range("W8:W" & LmtE).ClearContents
Case 1
" Workbooks.Open (lPriv)
Case 2
" Workbooks.Open (lPriv)
Case 3
" Workbooks.Open (lPriv)
Case 4
" Workbooks.Open (lPriv)
Case 5
" Workbooks.Open (lPriv)
End Select

Debug.Print "lbtn= " & lbtn
Debug.Print "lPriv= " & lPriv " ¡¡¡¡¡ Valor 0 al pasar a este Sub ¡¡¡¡
" bln.Close


End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder