Tps d'exécution Macro

M

Matthieu

Guest
Bonjour le Forum,

Voila j'ai réalisé avec l'aide du forum une macro qui marche comme je le souhaite. L'inconvénient c'est que son temps d'exécution est particuliérement long. Si quelqu'un a une solution pour réduire le temps d'exécution de cette Macro ce serait super.

Je vous laisse un petit fichier avec Ma Macro.
Merci & bonne journée [file name=Mach_20060227111211.zip size=15433]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Mach_20060227111211.zip[/file]
 

Pièces jointes

  • Mach_20060227111211.zip
    15.1 KB · Affichages: 8

Jacques87

XLDnaute Accro
Bonjour Mathieu

Une première remarque que j'ai faite dès l'ouverture du code de ta macro
Tu définies tes variables sans préciser leur type, de ce fait par défaut le type le plus lourd (Variant) sera choisi

exemple Dim a1 'Cases verte maintenance de contrôle
si a1 est du texte précise dim a1 As String
dim a1 As Integer si a1 est un nombre entier etc ...

Je regarde la suite et te recontacte éventuellement

A+
 

jp14

XLDnaute Barbatruc
Bonjour Matthieu, Jacques87

Pour éviter que le système ne lise x fois les feuilles on met dans une variable les valeurs contenues dans la feuille.

exemple

Dim colIndex, Colcompcoul, color, valeur, color2, valeur2 As Long ( ou integer en fonction des valeurs)

color = Cells(rwIndex, colIndex).Interior.ColorIndex
color2 = Cells(rwIndex, Colcompcoul).Interior.ColorIndex
valeur = Cells(rwIndex, 4)
valeur2 = Cells(rwIndex, colIndex)

Dans les tests
If color = 35 And color2 = 34 Then
 

jp14

XLDnaute Barbatruc
Bonjour

Ci joint le fichier. [file name=Machines.zip size=15135]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Machines.zip[/file]

Message édité par: jp14, à: 27/02/2006 13:50
 

Pièces jointes

  • Machines.zip
    7 KB · Affichages: 15
  • Machines.zip
    7 KB · Affichages: 16
  • Machines.zip
    7 KB · Affichages: 12

Jam

XLDnaute Accro
Salut Matthieu, jp14, pat1545,

Bon je viens de jeter un p'tit coup d'oeil rapide au code et oooops, mais de le début y'a un petit problème de déclaration
Code:
Dim a1, a2, a3, a4, a5, a6 As Long 'Cases verte maintenance de contrôle

Dim Cumul, Cumul2, Cumul3, Cumul4, Cumul5, Cumul6 As Long 'Objectif en prév de contrôle
Dim rwIndex As Long
Dim colIndex, Colcompcoul, color, valeur, color2, valeur2 As Long
On ne peut pas dimensionner plusieurs variables d'un seul coup comme ici. Dans tous les cas, par exemple ici seul a6 sera en Long, a1 à a5 seront des Variant. Idem pour le reste des autres Dim. A corriger !

Pour les Goto, c'est à éviter en règle général, à la notable exception de la gestion des erreurs. Le Goto est une vieille réminiscence du Basic avant qu'il ne devienne Visual. D'ailleurs dans ton code on peut remplacer les 2 lignes:
Code:
If color > 35 Then GoTo suite1
If color  35 Or color < 15 Then
(...)
End If
'puis la suite ;-)

Bon courage
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry