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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <R@V> wrote in message news:uQUmquo1GHA.480@TK2MSFTNGP06.phx.gbl...
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 ?
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 ?