Hola, prueba con esta API (es la típica ventana de copiando... quedan x segundos).
Código:
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_COPY = &H2
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
End Type
Sub ProgresoCopia(ByVal sFuente As String, ByVal sDestino As String)
Dim SFO As SHFILEOPSTRUCT
With SFO
.hWnd = 0
.wFunc = FO_COPY
.pFrom = sFuente
.pTo = sDestino
End With
SHFileOperation SFO
End Sub
Para llamar al procedimiento, p.e. desde un CommandButton:
Código:
Private Sub Command1_Click()
' Nota: Si el directorio destino no existe, lo crea
ProgresoCopia "c:\SIAP", "D:\Copia de SIAP"
End Sub

saludos