1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
   |  
Option explicit
 
Sub Valeurs_remplacer()
    'Déclaration des variables
    Dim sh As Worksheet, Feuille As Worksheet      'Déclarer les feuilles et les utiliser dans des variables est plus rapide qu'un accès dynamique avec leur nom
    Dim Tableau() As String 'On a un seul tableau avec les 2 colonnes
    Dim inf As Long, sup As Long, i As Long 'inf et sup servent aussi à accélérer le code, i sert à parcourir les cellules/tableaux
 
    Set sh = Sheets("Info.complémentaires") 'On met la feuille la plus utilisée dans une variable afin d'y accéder plus efficacement (vitesse et lisibilité du code)
    Application.ScreenUpdating = False         'On empêche l'application de mettre à jour l'affichage (exécution plus rapide)
    Application.Calculation = xlCalculationManual 'Idem pour les calculs de formules
 
    With sh 'On indique que tout ce qui commence par " . " appartient à l'objet sh (qui est ta feuille déclarée précédemment)
        sup = .Range("A" & Rows.Count).End(xlUp).Row + 1 'On récupère le nombre de valeurs à modifier, qui sera le nombre d'éléments sur lesquels bouclés mais aussi la borne supérieur de tes tableaux
        ReDim Preserve Tableau(sup,1) 'Du coup le tableau doit contenir au moins sup ligne et 2 colonnes (la première occurrence est toujours 0)
        For i = 0 To sup 'Pour chaque valeur contenue dans ta liste
            'On remplit le tableau
            Tableau(i,0) = .cells(i + 1, 1).value 'On remplit les tableaux
            Tableau(i,1) = .cells(i + 1, 2).value 'Idem
        Next i
        inf = LBound(Tableau, 1) 'On récupère la borne inférieure de ton tableau
    End With
 
    For Each Feuille In Worksheets 'Pour chaque feuille du classeur
        If Feuille.Name <> "Info.complémentaires" And Feuille.Name <> "Fiche UF*" Then 'Si son nom est différent de ... (tu as compris) alors
            For i = inf To sup 'Pour chaque élément de tes tableaux
                Feuille.Cells.Replace Tableau(i,0), Tableau(i,1), xlWhole, xlByRows, false 'Dans la feuille, on remplace comme tu l'as demandé la 
'valeur de la colonne de gauche en fait, par la valeur de la colonne de droite, la casse n'est pas respectée
            Next i
        End If
    Next Feuille
'On permet de nouveau la mise à jour de l'affichage et des formules
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub | 
Partager