Bonsoir,
en fait votre code est long car il rafraichi l'écran....
Voici le code modifié :
Sub MiseaJour()
Dim ligne As Byte
Dim mois As String
Dim pionnier As String
Dim LeMois As Byte
'
Sheets("Récap").Activate
Range("G7").Value = "Traitement en cours"
Application.ScreenUpdating = False
' Parcours les feuilles mois
For LeMois = 1 To 5 'choix de la feuille correspondante au mois
mois = Choose(LeMois, "sept", "oct", "nov", "déc", "jan")
Sheets(mois).Select
'Parcours les lignes
For ligne = 2 To 100
Sheets(mois).Select
If Cells(ligne, 4) = "" Then
ligne = ligne + 1
Else
pionnier = Cells(ligne, 4).Value
Sheets("Récap").Select
Cells(ligne, 4).Value = pionnier
End If
Next ligne
Next LeMois
Call frequence
Worksheets("Récap").Select
Range("G7").Value = ""
Application.ScreenUpdating = True
End Sub
Les instruction Application.screenupdating sont placées judicieusement :
une juste après l'affichage "traitement en cours" sinon on ne le verrait pas, et l'autre à la fin du code une fois que tout est fini.
@ bientôt
LouReeD