Sub New Vision()
'En dessous de Option Explicit, déclare ces variables qui seront globales.
Dim varroom As String, cel As Range, i As Long, k As Long 'au lieu de les répéter 10 fois.
'Fait de même pour les autres variables
If Label25.Caption = "PARAMETRAGE" Then
Chemin = "D:\partage\MJ Tracking\Sons\Paramétrage\"
ElseIf Label25.Caption = "TEASE1" Then
Chemin = "D:\partage\MJ Tracking\Sons\Tease1\"
ElseIf Label25.Caption = "TEASE2" Then
Chemin = "D:\partage\MJ Tracking\Sons\Tease2\"
ElseIf Label25.Caption = "TEASE3" Then
Chemin = "D:\partage\MJ Tracking\Sons\Tease3\"
ElseIf Label25.Caption = "TEASE4" Then
Chemin = "D:\partage\MJ Tracking\Sons\Tease4\"
End If
'Là aussi, tu as ceci à plusieures reprises, éfface ce qui est en trop et met-le dans Userform_Activate() qu'une seule fois.
'Dans le Module Standard, tu inscrit ces 3 chemins comme ceci
Public Const ChemSons As String = "D:\partage\MJ Tracking\Sons\"
Public Const ChemShut As string = "D:\partage\MJ Tracking\Sons\ShutDown\"
Public Const ChemTrack As String = "D:\partage\MJ Tracking\PNG\"
fichier1 = ChemTrack & "objet.jpg"
fichier2 = ChemSons & "Paramétrage\"
fichier3 = ChemShut & "ShutDown\"
' Comme te la fait remarquer Staple1600, tu as X fois commandbutton. Modifie comme ceci
For i = 6 to 28
Controls("CommandButton" & i).BackStyle = fmBackStyleTransparent
Next i
CommandButton11.Caption = "Envier" ' à échanger avec le 9 et ensuite
For i = 10 to 20
Controls("CommandButton" & i).Caption = ""
Next i
Sheets(varroom).Select - Range("A2").Select -While ActiveCell.Value <> "" -ActiveCell.Offset(1, 0).Select -Wend 'à changer par
Set cel = Sheets(varroom).range("a2")
If cel <> "" Then cel.Offset(1, 0).Select
ActiveWorkbook.Worksheets(varroom).sort.SortFields.Clear, à changer par
Sheets(varroom).sort.SortFields.Clear
Range("CK100000").Select
Cells.Find(What:=Range("CJ2").Value, After:=ActiveCell, à changer par
Set cel = Range("CK100000")
Cells.Find(What:=Range("CJ2").Value, After:=cel,
' Tu as 3 fois For each sh, pourquoi faire?
For Each sh In ActiveSheet.Shapes
For k = 5 to 7
If sh.TopLeftCell.Address = Range("A" & k).Address Then sh.Delete
Next k
Next sh
End Sub