bonjour j'ai creer une macro pour trier et copier du texte dans une nouvelle feuille afin de pouvoir creer des listes déroulantes qui ce mettrons à jour à chaque démarrage du classeur.
La procédure est relativement lente !
as-t-il un moyen de simplifié ce code ?
je débute en Vba!
La procédure est relativement lente !
VB:
Sub Liste()
'
' Liste Macro
'
'trier la source par critère et la coller dans la feuille liste par catégorie afin d'avoir une base pour creer des liste déroulante mise a jour
'par l'ajout d'un nouvelle article en mettant la macro dans l'ouverture du classeur
'
'
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="sac a dos"
Columns("a").Select
Selection.Copy
Sheets("liste").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="pochettes"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="liner"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("C2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="sac etanche"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("D2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="tente"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("E2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="sol"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("f2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="piquets"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("G2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="haubans"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("H2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="sursac"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("i2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="sac de couchages"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("j2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="drap"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("k2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="matelas"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("l2").Select
ActiveSheet.Paste
Sheets("Matos").Select
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("Tsource").Range.AutoFilter Field:=2, Criteria1:="bouteille"
Columns("a").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("liste").Select
Range("M2").Select
ActiveSheet.Paste
Rows("2,0").Delete
End Sub
as-t-il un moyen de simplifié ce code ?
je débute en Vba!