VBA: comparer 2 cellules

  • Initiateur de la discussion Initiateur de la discussion Guy_M
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Guy_M

XLDnaute Occasionnel
Bonjour,

J'ai écrit un fonction VBA qui permet de comparer 2 feuilles de calcul. Cette fonction est de mon point de vue trop rustique au niveau de la comparaison des valeurs des cellules :
Code:
        IlyaDiff = False
        If Not IsError(Cellule) And Not IsError(DeuxiemeFeuille.Range(Cellule.Address)) Then
            ' Les 2 cellules ne sont pas en erreur on compare les valeurs
            If Cellule.value <> DeuxiemeFeuille.Range(Cellule.Address).value Then
                IlyaDiff = True
            End If
        Else 'Au moins une cellule est en erreur
            If Not (IsError(Cellule) And IsError(DeuxiemeFeuille.Range(Cellule.Address))) Then
                'Une seule des cellules est en erreur
                IlyaDiff = True
            End If
        End If

En particulier, cette comparaison ne prends pas en compte le type de la cellule ce que peut avoir un effet sur le résultat (une heure calculé n'a pas nécessairement le même numéro de série qu'une heure saisie), ne permet de tenir compte de l'objectif de la comparaison (par exemple, elle est sensible à la casse ce qui n'est pas nécessaire).

Avant que je ne me lance dans la rédaction d'une fonction de comparaison plus universelle, y aurait-il parmi quelqu'un qui a ça en stock ou qui sait où trouver un tel code, à moins qu'il n'existe une fonction standard Excel-VBA pour ça ?

En échange, vous aurez ma gratitude éternelle.

Par avance, je vous remercie de vos réponses.

A bientôt
Guy
 
Re : VBA: comparer 2 cellules

Bonsoir,

Pas tout compris mais j'ai traduit ce que je pouvais.

Code:
Option Explicit 'En tête de module
Option Compare Text 'En tête de module pour comparaison insensible à la casse
Function IlyaDiff(Cellule1 As Range, Cellule2 As Range) As Boolean
    IlyaDiff = True
    If Not IsError(Cellule1) And Not IsError(Cellule2) Then IlyaDiff = Cellule1 <> Cellule2
End Function

Que faire si les deux cellules ont une erreur mais pas la même?

A+
 
Dernière modification par un modérateur:
Re : VBA: comparer 2 cellules

Bonjour Hasco,

Merci pour cette réponse.

Le code était là pour montrer ce que je fais actuellement, je souhaite avoir quelque chose de plus fin, par exemple "Option Compare Text" rend insensible à la casse toutes les comparaisons ce qui n'est l'objectif recherché.

A bientôt
Guy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
320
Retour