Matching de fichiers Excel

  • Initiateur de la discussion Chris
  • Date de début
C

Chris

Guest
Bonjour à tous,
J'avoue être nouveau sur ce forum et j'ai soif d'apprendre !
Voici l'explication : je possède un fichier source de 3500 mots et un fichier de données de 10 000 mots.
- Le fichier source est au format suivant: 2 colonnes (colonne n°1 = mot anglais et colonne n°2 = case vide)
- Le fichier de données est au format suivant : 2 colonnes (colonne n°1 = mot anglais et colonne n°2 = traduction française du mot contenu en colonne 1)

Je souhaite traduire automatiquement par une macro le fichier source A à partir du fichier de données B

Auriez vous une idée ?

Je joins un fichier exemple ... merci d'avance pour votre aide.

Chris
 

Celeda

XLDnaute Barbatruc
Bonsoir,

en attendant de voir ton fichier, une piste :

placer les deux fichiers dans un même et seul fichier
et avec Index Equiv, ramener les docnnées du fichiers B
dans la colonne vide du fichier source A et pour chaque mot
identique avoir la traduction, si c'est cela que l'on recherche.

Celeda
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Chris,
Mes hommages Celeda,


Peut-être une autre solution possible par VBA...

Soit un classeur nommé 'Source.xls' et un autre classeur nommé 'Donnees.xls', les 2 étant ouverts.

Lancez la procédure ci-dessous :

Sub Traduction()
Dim WbkSource As Workbook, WbkDonnees As Workbook
Dim TabSource As Variant, TabDonnees As Variant
Dim L As Long, L2 As Long
Application.ScreenUpdating = False
Set WbkSource = Workbooks('Source.xls')
Set WbkDonnees = Workbooks('Donnees.xls')
'Charge le tableau Donnees dans un tableau variant temporaire TabDonnees
With WbkDonnees.Sheets(1)
L = .Range('A65536').End(xlUp).Row
TabDonnees = .Range(.Cells(1, 1), .Cells(L, 2)).Value
End With
'Charge le tableau source dans un tableau variant temporaire TabSource
With WbkSource.Sheets(1)
L = .Range('A65536').End(xlUp).Row
TabSource = .Range(.Cells(1, 1), .Cells(L, 2)).Value
End With
'Traitement des correspondances
'Pour chaque ligne du tableau Source

For L = 1 To UBound(TabSource, 1)
TabSource(L, 2) = '(Non trouvé)'
'Pour chaque ligne du tableau Donnees
For L2 = 1 To UBound(TabDonnees, 1)
'Si correspondance
If TabSource(L, 1) = TabDonnees(L2, 1) Then
TabSource(L, 2) = TabDonnees(L2, 2)
Exit For
End If
Next L2
Next L
'Mise à jour du classeur Source
With WbkSource.Sheets(1)
.Range(.Cells(1, 1), .Cells(UBound(TabSource, 1), 2)).Value = TabSource
End With
Set WbkSource = Nothing
Set WbkDonnees = Nothing
Application.ScreenUpdating = True
End Sub


Cordialement.

Message édité par: myDearFriend!, à: 06/03/2005 21:56
 

Celeda

XLDnaute Barbatruc
Bonsoir le Forum,

Mes respects bien affectueux my dear :

c'est du grand art, :woohoo:

je n'ai plus qu'à me déshabiller et aller me coucher avec une procédure pareille!!!

et je rêverais de tes codes toute la nuit!!!

Celeda ;)
 

Discussions similaires

Réponses
3
Affichages
292
Réponses
8
Affichages
452

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16