Formules trop lourdes ?

A

Alexandre

Guest
Bonjour à tout le forum....

je me demande si les formules de ce fichier ne peuvent pas être allégées...en effet, les calculs semblent longs quand ils s'exécutent...

quelqu'un pourrait-il regarder ça ?


D'avance, un grand merci


Alexandre
 

Pièces jointes

  • PLANNING_ABSENCES.zip
    29.4 KB · Affichages: 20
  • PLANNING_ABSENCES.zip
    29.4 KB · Affichages: 14
  • PLANNING_ABSENCES.zip
    29.4 KB · Affichages: 20
A

Abel

Guest
Bonjour Alexandre,

Enlève la boucle for l=3 to LeBasDuTableau .... Next (mais pas son contenu).

Place "l=Selection.Row" juste avant le "UserForm1.Show".

La macro ne s'exécutera que sur la ligne où tu fais une sélection et non sur l'ensemble du tableau.

Ceci dit, c'est pas mal ton truc.


Abel.
 
A

Alexandre

Guest
Re...

Mon truc ? houla, pas tant que ça. C'est surtout avec l'aide du forum que j'ai pu le faire petit à petit

Alors, vivent les contributions....

Je vais tenter de virer la boucle...hmm hmm, mais vu mes connaissances en vba et autres, ça risque de pas être évident....


Merci à toi


Alexandre
 
A

Abel

Guest
Re,

L=Selection.Row
USF1.Show
'For l = 3 To Range("A3").End(xlDown).Row METS CETTE LIGNE EN COMMENTAIRE AINSI QUE LE NEXT CORRESPONDANT
a = 0
B = 0
c = 0
d = 0
e = 0
f = 0
g = 0
h = 0

For Each Cel In ActiveSheet.Range("B" & l & ":AF" & l)
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AH1").Interior.ColorIndex Then a = a + 1
.Range("AH" & l) = a
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AI1").Interior.ColorIndex Then B = B + 1
.Range("AI" & l) = B
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AJ1").Interior.ColorIndex Then c = c + 1
.Range("AJ" & l) = c
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AK1").Interior.ColorIndex Then d = d + 1
.Range("AK" & l) = d
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AL1").Interior.ColorIndex Then e = e + 1
.Range("AL" & l) = e
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AM1").Interior.ColorIndex Then f = f + 1
.Range("AM" & l) = f
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AN1").Interior.ColorIndex Then g = g + 1
.Range("AN" & l) = g
End With
With ActiveSheet
If Cel.Interior.ColorIndex = .Range("AO1").Interior.ColorIndex Then h = h + 1
.Range("AO" & l) = h
End With
Next Cel

'Range("AI" & l) = a
'Range("AJ" & l) = b
'Range("AK" & l) = c
'Range("AL" & l) = d
'Range("AM" & l) = e
'Range("AN" & l) = f
'Range("AO" & l) = g
'Next l METS CETTE LIGNE EN COMMENTAIRE


Abel
 
A

Alexandre

Guest
Re re re.....

et merci pour le temps pris à m'aider...

J'ai tenté de modifier le code vba, tel que tu l'indiques.....malheureusement, tout plante ensuite....ai-je fais moi-même une erreur ?


MErci


Alexandre
 

Discussions similaires

Réponses
10
Affichages
260

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.