none
Différence entre deux fichiers RRS feed

  • Discussion générale

  • Bonjour tous,

    Est-ce que quelqu'un peut m'aider pour detecter la différence entre deux fichiers word ? J'ai déja fait une macro dont le code est ci-dessous. La macro marche à merveille pour des fichiers ne dépassant pas une page, donc pas de problème de syntaxe. Pour des fichiers de six ou sept pages,  quand la différence se trouve au quatrième ou cinquième page par exemple, il faut patienter plus d'une demi-heure, voire une heure pour qu'elle réponde. Comment donc accelerer la vitesse, ou est-ce qu'il y a d'autres méthodes?

    Voici le code, les deux fichiers "fichier1.doc" et "fichier2.doc" sont déjà ouverts et mis en côte à côte:

     

    Dim ncaract1 As Long
    Dim ncaract2 As Long
    Dim nb_caract As Long
    Dim i As Long
    Dim mot1 As String
    Dim mot2 As String
    Sub difference()
    '
    ' difference Macro

    '
    'nombre de caractères du premier fichier
    ncaract1 = Documents("fichier1.doc").Characters.Count
    'nombre de caractères du second fichier
    ncaract2 = Documents("fichier2.doc").Characters.Count

    'je vais prendre comme nombre de caractères le plus grand des deux
    If ncaract1 > ncaract2 Then nb_caract = ncaract1 Else nb_caract = ncaract2

    'le boucle suivant detecte la différence entre les deux fichiers
    'dès qu'il y a différence on fait exit for
    For i = 1 To nb_caract
    mot1 = Documents("fichier1.doc").Characters(i)
    mot2 = Documents("fichier2.doc").Characters(i)
    If mot1 <> mot2 Then Exit For
    Next i
    'dès que la différence est détectée, on selectionne le caractère douteux dans les deux fichier
    'et lancer une alerte par un MsgBox
    Documents("fichier1.doc").Characters(i).Select
    Documents("fichier2.doc").Characters(i).Select
    MsgBox ("Verifiez ici")
    End Sub

    samedi 8 mai 2010 11:25

Toutes les réponses

  • Bonjour

    Le traitement caractère à carcatère d'un document est très lent, on n'y peut pas grand'chose.

    pensez quand même à "compiler" votre macro :

    Menu débogage Compiler.

    Une idée serait de travailler mot par mot, ou phrase ou paragraphe, puis affiner s'il y a des différences en descendant  jusqu'au caractère.

    Ca complique le programme mais les performances seront au rendez-vous.

     

    mercredi 12 mai 2010 12:47
  • Bonjour GeoF37,

    Merci de votre réponse, la méthode mot par mot est nettement plus rapide. Il me reste l'affinage.

    Cordialement,

    jeudi 20 mai 2010 08:57