Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ouverture Fichier xls (vba) lent à s'ouvrir

T

TONY

Guest
Bonsoir,

Jaimerais avoir votre avis sur le problème suivant.

J'avais un fichier xls avec uniquement des liaisons qui s'ouvre normalement.
Depuis que j'ai affecté à ce fichier une macros, le fichier est tres tres lent à s'ouvrir (à peu pres 2 mn) les macros ne doivent s'executer quà partir d'une command bar.

Je suis débutant en vba et je ne sais pas du tout ou me dirigé.

Si vous avez connu le cas ou déjà eu ce probleme, je suis preneur de votre expérience.

A+
Tony
 
T

TONY

Guest
Bonjour,
La macros ne s'execute pas à l'ouverture du fichier mais à partir d'un bouton. Voici la macros .

Autre question pouvez vous m'indiquer comment je pourrais intégrer une barre de progression dans la macros.


Merci bcp Dan de m'avoir répondu !

A+

Sub MiseAjour()

''Mise à jour Tony'

Application.StatusBar = "Patience, Mise à jour Banque de données en cours"

With Application
.ScreenUpdating = False
.DisplayAlerts = False

Set wb = .Workbooks.Open("C:\Documents and Settings\\Mes documents\telechargement tony.csv")
wb.Sheets(1).Columns(1).TextToColumns Range("A1"), xlTextQualifierDoubleQuote, , False, , , , , True, ";", Array(1, 4)
.ScreenUpdating = True
.DisplayAlerts = False
End With

Workbooks.Open "C:\Documents and Settings\Mes documents\telechargement tony.xls"

Workbooks("telechargement tony.xls").Activate
Sheets("telechargement tony").Select
Range("A5").Select
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
Range("A5", Range("D5").End(xlDown)).Select
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
Range("A5", Range("E5").End(xlDown)).Copy
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
Sheets("Intermédiaire").Select
Range("A1").Select

'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
If ActiveCell = "" Then
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False

Else
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False

End If

'Supprimer les lignes vides()
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
Sheets("Intermédiaire").Select
Range("A1", Range("D1").End(xlDown)).Select
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes

Dim NumCol As Byte
Dim NumLig As Integer, i As Integer
NumCol = ActiveCell.Column
NumLig = Range(Cells(65536, NumCol).Address).End(xlUp).Row

Application.ScreenUpdating = False
For i = NumLig To 1 Step -1
If Cells(i, NumCol) = "" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True


'Supprimer les doublons()
'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes

'Effacer la feuille "Sauvegarde"
Sheets("Sauvegarde").Select
Range("A1", Range("E1").End(xlDown)).Select
Worksheets("Sauvegarde").Range("A1", Range("E1").End(xlDown)).Clear

'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
Sheets("Intermédiaire").Select
Range("A1", Range("D1").End(xlDown)).Select
Worksheets("Intermédiaire").Range("A1", Range("E1").End(xlDown)).Copy _
Destination:=Worksheets("Sauvegarde").Range("A1")
Sheets("Sauvegarde").Select
Range("A1", Range("E1").End(xlDown)).Select

'Application.Wait (Now + TimeValue("0:00:03")) 'attente de 3 secondes
'Range("A1", Range("E1").End(xlDown)).Select
Sheets("Sauvegarde").Range("A1:E65000").AdvancedFilter Action:=xlFilterInPlace, Unique:=True

ActiveWorkbook.Save

Workbooks("telechargement tony.csv").Close
Workbooks("telechargement tony.xls").Close

Application.StatusBar = ""

End Sub
 
T

TONY

Guest
Ne chercher plus, le problème est trouvé, la mise à jour des liens était régler en automatique sans confirmation, comme les liaisons sont nombreuses alors il mettait du temps à s'ouvrir.

Par contre je suis preneur pour l'intégration d'une barre de progression dans la macros, j'ai un userform "progind" qu'on peut trouver dans la parti téléchargement du site mais je ne sais pas l'intégrer .

Merci de m'aider

Tony
 
D

Dan

Guest
Bonjour,

Peux-tu dire où est placé cette macro dans VBA ?
1. Dans un module VBA ?
2. Dans "Thisworkbook" ?

Comment est-elle commandée : via un bouton, un raccourci clavier ?

@+

Dan
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…