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

Messages postés
3
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
22 février 2010
- - Dernière réponse : 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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
210
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
210
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
3
Merci
Bonjour

Va voir ce site

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

Bonne journée

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de c148270
Messages postés
3
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
22 février 2010
0
Merci
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.
Commenter la réponse de jeremie291280
Messages postés
3
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
22 février 2010
0
Merci
Merci pour vos réponses.
Commenter la réponse de jeremie291280