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]
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
j'ai fais une autre version, tape un oeil dessus mais 2 conseils:
1) ne jamais fusionner tes cellules
2) déclarer tes variables et leur donner un nom différent de celui des cellules (pas de A1 ou A2, etc...)
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 ;-)