Vba File Copy Progress Bar

Vba file copy progress bar excel

Some VBA Macros run for ages – be it minutes or even hours. If we optimized our VBA Macro to the fullest there is often not much more you can do to change that. Usually what is irritating is waiting for VBA Macro code completion. Sitting by your desk is a waste of time – why not tell Excel/Access to let you know when the code has completed? Today we will explore such tools as the VBA Status Bar, VBA Progress Bar, Sound Notifications in VBA and Sending Email Alerts from VBA.

It represents a Windows progress bar control. It is used to provide visual feedback to your users about the status of some task. It shows a bar that fills in from left to right as the operation progresses. Let's click on a ProgressBar control from the Toolbox and place it on the form. The main properties of a progress bar are Value, Maximum. To monitor the copy process, we would like to copy the file byte by byte. Doing it this way gives us the possibilities to compute the values of rest bytes to copy, transfer speed and remaining time. To copy byte by byte, we need two file streams one to read the byte from the original file and the other one to write the byte to create the duplicate. Try this: Start a new Windows Forms application and replace the code on Form1 with. Imports System.Net Imports System.IO Public Class Form1 Protected Overrides Sub OnLoad(e As EventArgs) MyBase.OnLoad(e) CopyBtn.Text = 'Copy File' CopyBtn.Parent = Me ProgBar.Left = CopyBtn.Right End Sub Dim WithEvents CopyBtn As New Button Dim ProgBar As New ProgressBar Dim WithEvents FileCopier As New. We will open the VBA editor by clicking Alt +F11, or we can also go to the Developer Tab and select Visual Basic. Figure 1 – How to create a progress bar in excel. In the Visual Basic Window, we will right-click in the Project Explorer Pane and click Insert to view and click Userform. Figure 2 – Creating a progress bar in excel.

VBA Progress Bar

Progress Bars are ubiquitous anywhere anything takes more than a couple of seconds to complete. So why doesn’t VBA have a native Progress Bar – beats me.

Vba File Copy Progress Bar

To add a VBA Progress Bar to your Visual Basic for Applications macro read my post here.

Excel Status Bar

The VBA Status Bar is a panel that appears at the bottom of your Excel (or Access) Workbook. It is basically a Text Box to which you can display any non-blocking (non-modal) Message to your users.

Showing a Message in the VBA Status Bar

To show a message in the VBA Status Bar we need to Enable it using Application.DisplayStatusBar:

Hiding the VBA Status Bar

The VBA Status Bar when displayed, will remain displayed until ordered otherwise. It is best to hide and clean it after code execution completion:

Sound Notifications in VBA

What if you are away from your Screen, getting a Coffee or simply chatting with a colleague or getting on with our tasks stressed that we might miss that moment when our VBA Macro completes its task. Well why not introduce a Sound Notification? Let Excel or Access run a Sound to inform you that your Visual Basic for Applications macro has finally completed.

Playing a Sound in VBA

Vba File Copy Progress Bar

Playing a Sound in VBA is easy. Just add the below code snippet to a VBA Module:

Excel vba file copyCopy

It will play the Chimes.wav sound Once.

What if you don’t hear it? Running it once might obviously be not enough…

VBA Sound Alarm

Progress

The best approach is to create a VBA Sound Alarm that will run in a loop until we Turn it Off manually. What we will need is a Non-Modal UserForm as a pop-up to ask to stop the alarm.

First the macro code:

What happens here?:

  • I am measuring the execution time with the startTime and execTime variables
  • I am using the stopPlaying global VBA Variable to Turn Off the Alarm from our Alarm UserForm changes this value to True
  • I am displaying the AlarmForm with the Turn Off Alarm button

And now our AlarmForm code:

The result:

VBA Send Email Notification

Lastly when we are on the run and leaving our Workstation to process our VBA Macro remotely we might appreciate an email from Excel saying: Hey there! I just completed running the Macro!

You can find the code for the SendEmailFromOutlook function in my post here.

We might want to spice things up with maybe sending also the time it took to complete the macro:

Cool right? Makes the VBA Message Box hide in shame doesn’t it? The email should look like this:

Related posts:
-->

Copies a file.

Syntax

FileCopysource, destination


The FileCopy statement syntax has these named arguments:

PartDescription
sourceRequired. String expression that specifies the name of the file to be copied. The source may include directory or folder, and drive.
destinationRequired. String expression that specifies the target file name. The destination may include directory or folder, and drive.

Vba File Copy Progress Bar Java

Remarks

If you try to use the FileCopy statement on a file that is currently open, an error occurs.

Example

Vba File Copy Progress Bark

This example uses the FileCopy statement to copy one file to another. For the purposes of this example, assume that the file contains some data.

Excel Vba File Copy

See also

Support and feedback

Vba File Copy Progress Bar Examples

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.