j'ai besoin d'aide pour accélérer cette macro, pensez vous que cela soit possible et auriez vous la gentillesse de me dire comment faire ?
Merci d'avance pour votre temps
Patrick
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.Cursor = xlWait 'sablier
Application.Calculation = xlCalculationManual
If Not Application.Intersect(Target, Range("AE5")) Is Nothing Then
Rows("31:50").EntireRow.Hidden = False
If Range("ae5").Value = 6 Then Rows("31:50").EntireRow.Hidden = True
If Range("ae5").Value = 9 Then Rows("34:50").EntireRow.Hidden = True
If Range("ae5").Value = 12 Then Rows("37:50").EntireRow.Hidden = True
If Range("ae5").Value = 15 Then Rows("40:50").EntireRow.Hidden = True
If Range("ae5").Value = 20 Then Rows("45:50").EntireRow.Hidden = True
If Range("ae5").Value = 25 Then Rows("50:50").EntireRow.Hidden = True
If Range("AE5") <> "9" Then
'Columns("AT").EntireColumn.Visible = False
'Else
Columns("AT").EntireColumn.Hidden = True
End If
If Range("AS17").Value <> "0" And Range("AE5").Value <> "9" Then
ret = MsgBox("Si vous changez la durée d'utilisation, le montant sera réinitialisé ! ", vbYesNo + vbQuestion, "PL")
If ret = vbYes Then
Range("AS17").Value = 0
Else
Range("AE5").Value = 9
End If
End If
End If
Application.ScreenUpdating = True
Application.Cursor = xlDefault 'sablier
Application.Calculation = xlCalculationAutomatic
' If Target.Address <> "$AE$5" Then Exit Sub
' If Target.Value = "9" Then
' ActiveSheet.Shapes("OK").Visible = True
' Else
' ActiveSheet.Shapes("OK").Visible = False
' End If
End Sub
Ce bout de macro ne génère aucune boucle et devrait donc être très rapide à l'exécution, d'autant que tu as pris le soin de geler le ScreenUpdating et le Calculation. Tu peux ajouter également en début de macro :
Dim lig As Byte
Rows("31:50").Hidden = 0
Select Case [AE5]
Case 6: lig = 31
Case 9: lig = 34
Case 12: lig = 37
Case 15: lig = 40
Case 20: lig = 45
Case 25: lig = 50
End Select
Rows(lig & ":50").Hidden = -1
Après plusieurs essais, il s'avère que la solution de soan est un peu plus rapide que la mienne et en tout cas plus rapide que celle de fanfan38
J'ai aussi ajouté enable events comme le préconise Softmama
@Staple1600 a écrit : « Vivement le re-déconfinement »
pourquoi ? pour être re-re-confiné ensuite ? et puis, on est qu'au début
du 2ème confinement ! si ça peut te consoler, et t'aider à relativiser, pense
qu'une femme enceinte en a pour 9 mois ! (c'est long, 9 mois !)
sérieusement, après la récession économique due au 1er confinement,
j'pensais qu'les politiciens ne feraient jamais un 2ème confinement !
ben j'm'étais bien trompé ! (mais au cas où, j'avais quand même
gardé mes anciennes attestations de sortie, juste par prudence ! je les ai donc
ressorties pour l'occasion...)
j'suis trop débordé en c'moment, alors j'te laisse le soin d'chronométrer !
mais au fait, on est dimanche, aujourd'hui ! t'es pas parti à la pêche ?
ah non, c'est vrai, y'a pas d'autorisation d'sortie pour aller embêter
les poissons ! morale de la fable : les poissons adorent le
confinement : c'est scientifiquement prouvé !
j'ai changé de technique, confinement oblige. Comme les esquimaux de Gervais, je pêche maintenant sur les rayons gelés de mon congélateur. Hélas ! Je ne pêche que des cabillauds, espèce de poissons à coin carrés et rescapés de la pêche industrielle du capitaine Igloo.