[déplacé VB6 -> VBA] Alléger une macro

Résolu
jeremie291280 Messages postés 3 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 22 février 2010 - 19 févr. 2010 à 11:00
jeremie291280 Messages postés 3 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 22 février 2010 - 22 févr. 2010 à 12:52
Bonjour à tous, j' créé une macro qui me permet de trier et de classer des données dans une feuille Excel, cela fonction mais j'aimerai avoir quelque conseil pour alléger celci.


Sub TriAA()
'
' TriA Macro
' Macro enregistrée le 10/02/2010


' Copie du contenu dans un nouveau fichier

Cells.Copy
Workbooks.Add
ActiveSheet.Paste

' Supression des colones A et B et des lignes qui ne sont pas de PA

Columns("A:B").Delete Shift:=xlToLeft
Range("A2:G2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWindow.ScrollRow = 1
Range("A1").AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<>PA"
Selection.EntireRow.Delete
Selection.AutoFilter Field:=1

' Création d'une copie de l'extraction brute

Range("A:D,F:G").Select
Selection.Columns.AutoFit
Cells.Copy
Sheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFilter
Sheets("Feuil2").Name = "Extraction Brute"
Sheets("Feuil1").Select

' Tri

Selection.AutoFilter Field:=7, Criteria1:="=*Date J0*", Operator:=xlAnd, _
Criteria2:="=*PSRC*"
Columns("A:G").Copy
Sheets.Add
Range("A1").Activate
ActiveSheet.Paste
Selection.AutoFilter
Range("A:D,F:G").Select
Selection.Columns.AutoFit
Range("A1").Select
Sheets("Feuil3").Name = "Date J0 incorrecte"
Sheets("Feuil1").Select
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Selection.AutoFilter Field:=7

Selection.AutoFilter Field:=7, Criteria1:="=*Date J1*", Operator:=xlAnd, _
Criteria2:="=*PSRC*"
Columns("A:G").Copy
Sheets.Add
Range("A1").Activate
ActiveSheet.Paste
Selection.AutoFilter
Range("A:D,F:G").Select
Selection.Columns.AutoFit
Range("A1").Select
Sheets("Feuil4").Name = "Date J-1 incorrecte"
Sheets("Feuil1").Select
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Selection.AutoFilter Field:=7

Selection.AutoFilter Field:=7, Criteria1:="=*Trame*", Operator:=xlAnd, _
Criteria2:="=*AP*"
Columns("A:G").Copy
Sheets.Add
Range("A1").Activate
ActiveSheet.Paste
Selection.AutoFilter
Range("A:D,F:G").Select
Selection.Columns.AutoFit
Range("A1").Select
Sheets("Feuil5").Name = "Trame d'erreur"
Sheets("Feuil1").Select
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Selection.AutoFilter Field:=7

End Sub

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
19 févr. 2010 à 11:28
Bonjour,

Commence par te débarrasser de ces méthodes de sélection, paste, etc...
Pointe directement sur tes feuilles, plages et cellules pour y agir !


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
19 févr. 2010 à 13:40
Là, tu vois, (exemple) je pointe directement sur la cellule A1 de la feuille Feuil2 :
toto = Sheets("Feuil2").Range("A1").value
Dur ?

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
20 févr. 2010 à 00:24
Bonjour

Va voir ce site

http://www.mvps.org/dmcritchie/excel/slowresp.htm

Bonne journée
3
jeremie291280 Messages postés 3 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 22 février 2010
19 févr. 2010 à 13:20
Ok, aurai tu un exemple de commande pour pointer directement une feuille, plage et cellule.
Je suis vraiment débutant, j'ai decouvert VBA il ya 1 semaine.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeremie291280 Messages postés 3 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 22 février 2010
22 févr. 2010 à 12:52
Merci pour vos réponses.
0