Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Enregistrement fichier

1 réponse
Avatar
RV
Bonjour à tous,
J'ai un fichier avec une barre de progression ajustée au déroulement d'une
macro. A environ 74% de la barre je fais un enregistrement du fichier qui
arrête la progression mais qui reprend lorsque l'enregistrement est fini.
Ma question est:

Est-il possible que la barre de progression continue d'évoluée pendant
l'enregistrement du classeur ?

Merci de votre aide..
Cordialement
RV

1 réponse

Avatar
David
Bonjour,

A priori ca n'est pas facile. Ce que l'on préconise lorsqu'une sauvegarde se
réalise, c'est par exemple un messagebox qui indique a l'utilisateur que la
sauvegarde est en cours ou une animation lui prouvant que l'application
n'est pas plantée.

Cependant, j'ai cru voir sur un newsgroup l'utilisation de cette fonction
que je te soumet (elle utilise la fonction copyFileEx de l'API Windows.


Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA"
_
(ByVal lpExistingFileName As String, ByVal lpNewFileName As
String, _
ByVal lpProgressRoutine As Long, lpData As Any, _
ByRef pbCancel As Long, ByVal dwCopyFlags As Long) As Long

Public Const PROGRESS_CANCEL = 1
Public Const PROGRESS_CONTINUE = 0
Public Const PROGRESS_QUIET = 3
Public Const PROGRESS_STOP = 2
Public Const COPY_FILE_FAIL_IF_EXISTS = &H1
Public Const COPY_FILE_RESTARTABLE = &H2


Sub TestIt()
Dim Res As Long
Res = CopyFileEx("c:book2.xls", "C:NewBook2.xls", _
AddressOf CopyProgressRoutine, _
ByVal 0&, 0&, COPY_FILE_RESTARTABLE)
End Sub


Public Function CopyProgressRoutine(ByVal TotalFileSize As
Currency, _
ByVal TotalBytesTransferred As Currency, _
ByVal StreamSize As Currency, _
ByVal StreamBytesTransferred As Currency, _
ByVal dwStreamNumber As Long, _
ByVal dwCallbackReason As Long, _
ByVal hSourceFile As Long, _
ByVal hDestinationFile As Long, _
ByVal lpData As Long) As Long


Debug.Print CStr(Int((TotalBytesTransferred * 10000) / _
(TotalFileSize * 10000) * 100)) + "% complete..."
DoEvents
CopyProgressRoutine = PROGRESS_CONTINUE
End Function

A+

David


"RV" wrote in message news:
Bonjour à tous,
J'ai un fichier avec une barre de progression ajustée au déroulement d'une
macro. A environ 74% de la barre je fais un enregistrement du fichier qui
arrête la progression mais qui reprend lorsque l'enregistrement est fini.
Ma question est:

Est-il possible que la barre de progression continue d'évoluée pendant
l'enregistrement du classeur ?

Merci de votre aide..
Cordialement
RV