Comparaison de deux Range de taille superieur à 1

naoskev

XLDnaute Nouveau
Bonjour à tous,

j'aimerai faire une comparaison simple (si possible) entre deux range de taille identique mais contenant plusieurs cellules.
Je fais ma comparaison que sur les valeurs des cellules et je n'arrive pas à trouver de comparaison champ par champ.

exemple :
que : Range("A1","A3") = Range("B1","B3")
me renvois :
range("A1").value = range("B1").value
& range("A2").value = range("B2").value
& range("A3").value = range("B3").value
 

PrinceCorwin

XLDnaute Occasionnel
Re : Comparaison de deux Range de taille superieur à 1

Bonjour,

Voici une petite fonction qui compare des matrices.
VB:
Option Base 1

Function CompareMatrice(exp As Range, dest As Range) As Boolean
expcol = exp.Columns.Count
explig = exp.Rows.Count
descol = dest.Columns.Count
deslig = dest.Rows.Count
test = True

ReDim exped(1 To explig, 1 To expcol)
ReDim desti(1 To deslig, 1 To descol)

exped = exp
desti = dest

If expcol = descol And explig = deslig Then
    For i = 1 To explig
        For j = 1 To expcol
            If exped(i, j) <> dest(i, j) Then
                test = False
            End If
        Next j
    Next i
Else
    test = False
    MsgBox "pas de correspondances"
End If
CompareMatrice = test
End Function

Bonne Journée
 

naoskev

XLDnaute Nouveau
Re : Comparaison de deux Range de taille superieur à 1

Merci pour ta reponse.

De mon coté, j'ai trouvé une solution qui reponds à mon probleme :
Code:
Function rngCompare(ByVal Alpha As Range, ByVal Beta As Range) As Boolean
Dim cpt As Integer, cell As Range
rngCompare = False
cpt = 1

For Each cell In Alpha
If cell.Value <> Beta(cpt).Value Then Exit Function
cpt = cpt + 1
Next cell

rngCompare = True
End Function
Je ne sais pas pourquoi, il se produit une erreur lorsque je ne passe pas les parametres par valeur.
Mais sinon elle fonctionne sur mon projet.
 

Discussions similaires

Réponses
2
Affichages
159
Réponses
2
Affichages
583