remplacer le contenu d'une cellule par une autre dans un fichier excel

kob75

XLDnaute Nouveau
Bonsoir à tous,

Je vous remercie d'avance pour la réponse que vous allez apporter à ma demande.

J'ai un fichier word qui contient un texte en français.

J'ai, par ailleurs, un document excel qui contient deux colonnes: le premier colonne contient des mots en français (un mot par ligne). le deuxième colonne contient des mots en anglais ( un mot par ligne qui correspond à la traduction anglaise du mot français).

Je souhaite modifier mon texte français en anglais en demandant à word d'aller chercher le correspondant du mot français en anglais ( le mot en français se trouve par exemple à la cellule A1 et le mot en anglais à la cellule B1) et de le remplacer d'office

j'avoue que je suis un "nul" en excel et par conséquence en VBE ou VBA.

Bonne soirée à tous
 

job75

XLDnaute Barbatruc
Re : remplacer le contenu d'une cellule par une autre dans un fichier excel

Bonjour kob75, bienvenue sur XLD,

Presque mon homonyme :)

Voyez les 2 fichiers joints.

La macro est dans le fichier Word, et le fichier Excel doit aussi être ouvert :

Code:
Sub Traduction()
'IMPORTANT : cocher la référence "Microsoft Excel xx.x Object Library"
Dim MyXL As Excel.Application, cherche As String, r As Excel.Range
On Error Resume Next
Set MyXL = GetObject(, "Excel.Application")
If Err Then MsgBox "Excel absent...": Exit Sub
On Error GoTo 0
cherche = Trim(Replace(Selection.Range, Chr(13), ""))
Set r = MyXL.activeworkbook.sheets("Dictionnaire").[A1].currentregion
Set r = r.Find(cherche)
If r Is Nothing Then MsgBox "Mot introuvable...", , "Traduction": GoTo 1
Selection = r.Offset(, IIf(r.Column = 1, 1, -1))
1 Set MyXL = Nothing
Set r = Nothing
End Sub
Pour cocher la référence "Microsoft Excel xx.x Object Library" dans Word :

- Activer Word et aller dans VBA (Alt+F11)

- menu Outils => Références.

Edit : remarquer que la traduction fonctionne dans les 2 sens...

A+
 

Pièces jointes

  • Doc Word(1).doc
    45 KB · Affichages: 52
  • Traduction.xls
    20.5 KB · Affichages: 47
  • Traduction.xls
    20.5 KB · Affichages: 55
  • Traduction.xls
    20.5 KB · Affichages: 56
Dernière édition:

job75

XLDnaute Barbatruc
Re : remplacer le contenu d'une cellule par une autre dans un fichier excel

Re,

Il vaut mieux préciser les paramètres de la recherche dans Excel :

Code:
Set r = r.Find(cherche, , xlValues, xlWhole)
Fichier (2).

A+
 

Pièces jointes

  • Doc Word(2).doc
    45.5 KB · Affichages: 51
  • Traduction.xls
    21 KB · Affichages: 43
  • Traduction.xls
    21 KB · Affichages: 45
  • Traduction.xls
    21 KB · Affichages: 47

job75

XLDnaute Barbatruc
Re : remplacer le contenu d'une cellule par une autre dans un fichier excel

Re,

Un complément pour le cas où le mot à traduire commence par une majuscule :

Code:
Set r = r.Offset(, IIf(r.Column = 1, 1, -1))
Selection = IIf(cherche = MyXL.Proper(cherche), MyXL.Proper(r), r)
Nota : tous les mots du dictionnaire sont en minuscules.

Fichier (3).

A+
 

Pièces jointes

  • Doc Word(3).doc
    46.5 KB · Affichages: 53
  • Traduction.xls
    21 KB · Affichages: 42
  • Traduction.xls
    21 KB · Affichages: 48
  • Traduction.xls
    21 KB · Affichages: 41

job75

XLDnaute Barbatruc
Re : remplacer le contenu d'une cellule par une autre dans un fichier excel

Re, salut Calvus et merci,

Dans cette version (4) on utilise le double-clic avec ce code dans un Module de classe :

Code:
Public WithEvents appWord As Word.Application

Private Sub appWord_WindowBeforeDoubleClick(ByVal Sel As Selection, Cancel As Boolean)
Application.OnTime Now, "Traduction"
End Sub
et dans ThisDocument, pour initialiser une instance :

Code:
Dim X As New Classe1

Private Sub Document_Open()
Set X.appWord = Word.Application
End Sub
A+
 

Pièces jointes

  • Doc Word(4).doc
    56 KB · Affichages: 59
  • Traduction.xls
    24.5 KB · Affichages: 49
  • Traduction.xls
    24.5 KB · Affichages: 47
  • Traduction.xls
    24.5 KB · Affichages: 54

job75

XLDnaute Barbatruc
Re : remplacer le contenu d'une cellule par une autre dans un fichier excel

Re kob75,

J'ai dit - et répété, poste #2 - qu'il fallait cocher la référence "Microsoft Excel xx.x Object Library" dans Word.

Qui cherche trouve :rolleyes:

A+
 

job75

XLDnaute Barbatruc
Re : remplacer le contenu d'une cellule par une autre dans un fichier excel

Bonjour kob75, le forum,

Retournez dans les références de Word.

1) Assurez-vous que la référence "Microsoft Excel xx.x Object Library" est bien cochée.

2) Si une référence est indiquée MANQUANT décochez-la (dites-nous laquelle c'est).

A+
 

Discussions similaires

Réponses
26
Affichages
361
Réponses
3
Affichages
240

Statistiques des forums

Discussions
312 104
Messages
2 085 326
Membres
102 862
dernier inscrit
Emma35400