Résolu Tri d\'une feuille par date et copie vers une autre

mar82

Nouveau membre
Bonjour

je suis depuis hier sur un programme pour trier un tableau par dates, et copier ce tri sur une autre feuille.
Voici mon code
[cpp]Sub Macro8()

'lire les dates

Dim dat1#, dat2#, plage As Range

Sheets("page destination").Select


dat1 = CDbl(Cells(5, 4))

dat2 = CDbl(Cells(5, 6))


D = Sheets("page destination").UsedRange.Rows.Count
If D > 10 Then
Range(Cells(11, 1), Cells(D, 24)).Clear
End If


'filtrer
Sheets("page input").Select

c = Sheets("page input").UsedRange.Rows.Count
Application.ScreenUpdating = False
Sheets("page input").AutoFilterMode = False
Set plage = Range("A7", [I65536].End(xlUp))
plage.AutoFilter 9, ">=" & dat1, xlAnd, "<=" & dat2
plage.Copy

Sheets("page destination").Select
Range("a11").Select
plage.PasteSpecial xlPasteFormats
plage.PasteSpecial Paste:=xlPasteValues


Call macro9
Sheets("page destination").Select
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

[/cpp]


J'ai plusierus fois tester des codes différents pour l'écriture de l'autofilter et j'ai à chaque fois la même erreur de compilation:
en allemand "Laufzeitfehler 1004". C'est en allemand, mais en gros la ligne d'autofilter est surlignée en jaune et dû à cette erreur, la macro ne marche pas.

C'es t pour le boulot, et je n'en peux plus de chercher.

Vous avez pas une idée

merci beaucoup
 

zeb

Modérateur
Moderator dixit : Merci de lire, respecter et appliquer le règlement.
Présente ton code mieux que ça : utilise la balise
Code:
 

mar82

Nouveau membre
Bonjour.
Excusez-moi c'était le premier message inséré.
J'ai changé l'écriture.
Cordialement
 

zeb

Modérateur
Meilleure réponse
Attention les yeux, les commentaires désagréables vont fuser.
Mais c'est pour ton bien. Si, si...
Code:
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)
 

mar82

Nouveau membre
Merci Beuaoup pour on aide! tout a marché!!!
Mon dieu comme on se sent petit des fois...

Bonne continuation
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 829
Membres
1 586 367
Dernier membre
ramkin
Partager cette page
Haut