Bonjour,
J'ai besoin de réaliser un grand nombre de traduction de variables dans un fichier excel d'un quinzaine de feuilles. On trouve sur chaque feuille, d'un côté un schéma de fonctionnement comprenant les variables à traduire, et à coté la liste de variables ainsi que leur traductions. Après avoir traduit la moitié de la 1er feuille en rechercher/remplacer manuellement, je me suis dis que ça serait plus sympa et moins fastidieux avec VBA.
Débutant avec VBA, j'avance doucement depuis 2/3 jours en corrigeant les bugs avec l'aide des forums, avant d'en découvrir d'autres 2 lignes en dessous. Résultat je ne suis plus sûr de gagner tant de temps que prévu.
A ce stade deux solutions: soit ma macro fonctionne avant lundi, soit je réactive le mode chinois avec les rechercher/remplacer à la main..

En résumé, j'aimerais:
_exécuter un 1er search/replace avec la 1er ligne de mon tableau de traduction
_une fois que la recherche est terminée, passer à la 2ème ligne, puis la 3ème...jusqu'à la dernière ligne du tableau non vide
_passez à la feuille suivante

Actuellement quand j'exécute, excel me renvoit une erreur "objet requis" à la ligne14. Il semble il y voir un problème de syntaxe à la ligne1

J'ai rajouté des commentaires pour que vous puissiez suivre ce que je souhaite/espère réaliser à la ligne suivante:
La structure peut vous paraitre illogique, c'est le fruit de plusieurs post sur différents forums en ajoutant mes bidouillages perso


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee, Valeur_remplacement, AdresseTrouvee As String
Dim i, w, nb_remplacement As Integer
 
'w:nombre de cases non vides dans la colonne X (=colonne avec les mots à traduire)
w = Application.WorksheetFunction.CountA(Feuil1.Range("X:X"))
Set PlageDeRecherche = Sheets(1).Cells
 
'Décalage mise en page
For i = 7 To w + 4
    Valeur_Cherchee = Sheets(1).Cells(i, 24).Formula
    Valeur_remplacement = Sheets(1).Cells(i, 28).Formula
    Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookIn:=xlFormulas, LookAt:=xlWhole).Activate
    ActiveCell.Replace(Valeur_Cherchee, Valeur_remplacement, xlPart, xlByRows)
'gestion erreur
        If Trouve Is Nothing Then
            msgbox (Valeur_Cherchee + " " + "introuvable")
        Else
    AdresseTrouvee = Trouve.Address
        'boucle pour prochain résultat de la recherche
        Do
            PlageDeRecherche.FindNext(After:=ActiveCell).Activate
            ActiveCell.Replace what:="Valeur_Cherchee", Replacement:="Valeur_remplacement", LookAt:=xlPart, SearchOrder:=xlByRows
            nb_remplacement = nb_remplacement + 1
        Loop While Not Trouve Is Nothing
 
        msgbox (Trouve + " " + "remplacé" + nb_remplacement + "fois")
        End If
Next i
 
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
 
End Sub
J'espère avoir été assez clair, j'attends vos suggestions avec impatience!
Merci pour votre aide et bonne journée