Separer texte en colonne et compare 2 fichiers

ok merci

Salut Grizou, Ausecour,

ça fonctionne sans problème chez moi excepté un décalage de ligne pour le résultat "1".

Pour le plaisir, j'ai ré-écrit le code à ma façon.

Je postule, car je ne le vérifie pas, que chaque ligne compte le même nombre de données séparées d'une virgule.

La macro démarre, dans un fichier comme dans l'autre, sur un double-clic dans la feuille.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData1, tData2, tSplit, tExtract(), iIdx%
Cancel = True
'
For x = 1 To 2
    With Workbooks("Dataset" & IIf(x = 1, "1", "2")).Sheets(1)
        iIdx = 0
        Erase tExtract
        tData2 = .Range("A1").Resize(.Range("A" & Rows.Count).End(xlUp).Row, 1).Value
        For y = 1 To UBound(tData2, 1)
            tSplit = Split(tData2(y, 1), ",")
            iIdx = IIf(UBound(tSplit) + 1 > iIdx, UBound(tSplit) + 1, iIdx)
            ReDim Preserve tExtract(UBound(tData2, 1), iIdx)
            For Z = 0 To UBound(tSplit)
                tExtract(y - 1, Z) = tSplit(Z)
            Next
        Next
        .Range("A1").Resize(UBound(tData2, 1), iIdx).Value = tExtract
        If x = 1 Then tData1 = .Range("A1").Resize(UBound(tData2, 1), iIdx + 2).Value
        If x = 2 Then tData2 = .Range("A1").Resize(UBound(tData2, 1), iIdx).Value
    End With
Next
For x = 2 To UBound(tData1, 1)
    iIdx = 0
    For y = 1 To UBound(tData1, 2) - 2
        If tData1(x, y) <> tData2(x, y) Then
            iIdx = 1
            Exit For
        End If
    Next
    If iIdx = 0 Then tData1(x, UBound(tData1, 2)) = 1
Next
Workbooks("Dataset1").Sheets(1).Range("A1").Resize(UBound(tData1, 1), UBound(tData1, 2)).Value = tData1
Workbooks("Dataset2").Sheets(1).Range("A1").Resize(UBound(tData2, 1), UBound(tData2, 2)).Value = tData2
'
End Sub

A+

8dataset1.xlsm (14.65 Ko)
6dataset2.xlsm (16.02 Ko)

Bonjour,

Merci de ta participation,

ce n'est pas un décalage, en fait je regarde également si les en-têtes sont les mêmes entre les deux fichiers, si c'est le cas, je mets un 1 à côté, la dernière ligne n'a pas de un car la dernière colonne contient un e, qui n'est par pareil que l'autre fichier au même endroit.

ce n'est donc pas un décalage, c'est souhaité

Merci

Je reesaierai chez moi avec mon pc

Peut etre que sur le pc du boulot il doit y avoir un pb avec les macros excel

Rechercher des sujets similaires à "separer texte colonne compare fichiers"