Bonjour à tous,
J'ai coder une macro qui fonctionne très bien sur ma machine ainsi que sur celle des autres. Le probème c'est que la macro est très lente sur la machine du principal utilisateur (sans que je puisse l'expliquer). Je suis donc tomber sur ce fil https://www.excel-downloads.com/threads/macro-tres-lente.145158/ et ai récupéré en particulier ce bout de code que j'ai insérer dans ma macro :
Re : Macro tres lente
et voila que la fin de ma macro ne fonctionne plus :
En fait, en ajoutant ce bout de macro, au lieu que "c" me renvoit la valeur souhaitée, elle me renvoit systématiquement 1 ou rien du tout dans la case appropriée de la feuille résumé Alors qu'elle devrait m'afficher 5 puis 12 etc...qui sont le rang d'Alta Vista en fonction d'un segment de marché (chaque feuille de mon classeur représente un segment de marché et la feuille résumé reprend le classement de Alta vista sur chaque segment)
Tout le reste de ma macro (plusieurs pages tout de même) fonctionne parfaitement, sauf ce morceau...
Quelqu'un a-t-il une idée ?
Merci !
Amaury
J'ai coder une macro qui fonctionne très bien sur ma machine ainsi que sur celle des autres. Le probème c'est que la macro est très lente sur la machine du principal utilisateur (sans que je puisse l'expliquer). Je suis donc tomber sur ce fil https://www.excel-downloads.com/threads/macro-tres-lente.145158/ et ai récupéré en particulier ce bout de code que j'ai insérer dans ma macro :
Re : Macro tres lente
Bonjour zoubitom, bonjour à tous,
Pour éviter les récalculs systématiques inutiles, tu mets:
en début de macro:
Code :
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
et en fin de macro:
Code :
Application.ScreenUpdating = true
Application.Calculation = xlCalculationAutomatic
@+
Gael
et voila que la fin de ma macro ne fonctionne plus :
Code:
For Each sh1 In Sheets(Array("ALTO", "AVSV", "AVTS", "ATEMPORAL", "PREMIUM", "CLASSIC", "FML"))
sh1.Select
fin = [B65536].End(xlUp).Row
If fin < 5 Then fin = 4
For i = 4 To fin
If Cells(i, 3).Value Like "*ALTA VISTA*" Then Exit For
Next i
Cells(i, 1).Select
Set c = selection
For i2 = 3 To 9
If Sheets("resume").Cells(6, i2).Text = ActiveSheet.name Then Exit For
Next i2
Sheets("resume").Select
Cells(13, i2) = c
Next sh1
En fait, en ajoutant ce bout de macro, au lieu que "c" me renvoit la valeur souhaitée, elle me renvoit systématiquement 1 ou rien du tout dans la case appropriée de la feuille résumé Alors qu'elle devrait m'afficher 5 puis 12 etc...qui sont le rang d'Alta Vista en fonction d'un segment de marché (chaque feuille de mon classeur représente un segment de marché et la feuille résumé reprend le classement de Alta vista sur chaque segment)
Tout le reste de ma macro (plusieurs pages tout de même) fonctionne parfaitement, sauf ce morceau...
Quelqu'un a-t-il une idée ?
Merci !
Amaury