Attention les yeux, les commentaires désagréables vont fuser.
Mais c'est pour ton bien. Si, si...
Sub Macro8()
'lire les dates
Dim dat1#, dat2#, plage As Range
'// Utilise Worksheets. (oui, je sais, l'enregistreur ne le fait pas)
'// Et ne fais pas de Select, ça ne sert à rien
Sheets("page destination").Select
'// Mets devant chaque Cells/Range la feuille à laquelle on se rapporte.
dat1 = CDbl(Cells(5, 4))
dat2 = CDbl(Cells(5, 6))
'// Ah, tu vois que tu sais le faire !
D = Sheets("page destination").UsedRange.Rows.Count
If D > 10 Then
Range(Cells(11, 1), Cells(D, 24)).Clear
End If
'filtrer
'// Non
Sheets("page input").Select
'// Oui
c = Sheets("page input").UsedRange.Rows.Count
'// Qu'est-ce que ce truc-là vient-il faire là ?
'// En plus, je ne vois pas de remise à True !
Application.ScreenUpdating = False
Sheets("page input").AutoFilterMode = False
Set plage = Range("A7", [I65536].End(xlUp))
plage.AutoFilter 9, ">=" & dat1, xlAnd, "<=" & dat2
'// Arhhhhg x_X
'// Interdis-toi l'utilisation du presse-papier. Il appartient à l'utilisateur, pas aux programmes.
'// Imagine deux secondes que tous les programmes se permettaient de l'utiliser !!!
'// T'imagine la pagaille ?
plage.Copy
Sheets("page destination").Select
'// Mets devant chaque Cells/Range la feuille à laquelle on se rapporte.
Range("a11").Select
plage.PasteSpecial xlPasteFormats
plage.PasteSpecial Paste:=xlPasteValues
Call macro9
Sheets("page destination").Select
'// Mets devant chaque Cells/Range la feuille à laquelle on se rapporte.
Range("a11").Select
End Sub
Sub macro9()
Sheets("page input").Select
Range("a1:x6").Activate
Sheets("page input").EnableAutoFilter = True
Range("a7").Select
End Sub
Quand il ne restera plus un seul select/activate, ta macro ne plantera plus.
Pour info, ce n'est pas la ligne "AutoFilter" qui plantait.
Pour t'en convaincre, exécute ta macro pas-à-pas (touche F8)