Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

kob75

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

Re,

J'ai un problème avec (MyXL As Excel.Application)
le message affiché dans VB est " projet ou bibliothèque introuvable!

Merci pour l'aide encore ;-)
 

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

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
409
Réponses
3
Affichages
250
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…