Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 comparaison de plusieurs cellules

RIVOIRA

XLDnaute Nouveau
Bonjour à tous,

voilà ma problématique.
Je souhaite savoir s'il existe une astuce pour faire un comparaison avec plusieurs cellules

La première cellule concerne un ensemble de chiffres, regroupé dans cette même cellule (BA11)
les deux autres concernent un seul chiffre (AD11 & AE 11)

l'idée est d'afficher un résultat "VRAI" dans une autre cellule (BD11), si et seulement si :
-Celle-ci comporte un chiffre similaire avec la première autre cellule
- Cette même cellule comporte un chiffre similaire avec la deuxième autre cellule.

Le point qui sépare les deux chiffres est à extraire.

J'espère que cela est claire, et je vous joins un fichier qui aide à la compréhension

Je vous remercie par avance et vous souhaite une bonne journée

Gilles
 

Pièces jointes

  • gg.pdf
    33.7 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour RIVOIRA, le forum,
J'ai encore un autre pb. Quand je modifie la cellule AG11 (par exemple je transforme 8 en 5), j'ai un bon résultat sur la cellule BD11 ("VRAI"), mais tout le résultat de la colonne BC se transforme.
Pouvez-vous m'éclaircir ?
La formule en BC11 dépend de DP19 et EB6.

Ces 2 cellules contiennent des formules EQUIV qui dépendent de AF11 et AG11.

A+
 

RIVOIRA

XLDnaute Nouveau
Ah! bien sur. Merci encore pour l'information.
Encore un dernière chose. J'aimerais comparer deux cellules qui comporte deux chiffres dans chacune d'elle, separé par un "/".
j'aimerais afficher un résultat "VRAI" si au moins l'un des deux chiffres d'une cellules est similaire à l'autre chiffre de l'autre cellule.
Il peut potentiellement y a voir qu'un seul chiffre sur un des 2 cellules.

Je vous joins un fichier

Merci encore
 

Pièces jointes

  • Classeur1.xlsx
    9.8 KB · Affichages: 5

Gégé-45550

XLDnaute Accro
Bonjour,
Essayez ceci :
VB:
=OU(GAUCHE(A6;TROUVE("/";A6)-1)=GAUCHE(B6;TROUVE("/";B6)-1);STXT(A6;TROUVE("/";A6) +1; NBCAR(A6)-TROUVE("/";A6))=STXT(B6;TROUVE("/";B6) +1; NBCAR(B6)-TROUVE("/";B6)))
Cordialement,
 

job75

XLDnaute Barbatruc
@Gégé-45550 il faut traiter les cas où il n'y a pas de slash / (nombre isolé).

Avec une fonction VBA c'est très simple :
VB:
Function Comparer(x1$, x2$) As Boolean
Dim s1, s2, ub%, i%
s1 = Split(x1, "/")
s2 = Split(x2, "/")
ub = Application.Min(UBound(s1), UBound(s2))
For i = 0 To ub
    If s1(i) = s2(i) Then Comparer = True: Exit Function
Next
End Function
 

Pièces jointes

  • Comparer(1).xlsm
    18.3 KB · Affichages: 1

Gégé-45550

XLDnaute Accro
Par formule, c'est une seule ligne, certes un peu longue ...
VB:
=SI(ESTERREUR(TROUVE("/";A6));SI(A6=B6;"VRAI";"FAUX");SI(ESTERREUR(TROUVE("/";B6));SI(A6=B6;"VRAI";"FAUX");OU(GAUCHE(A6;TROUVE("/";A6)-1)=GAUCHE(B6;TROUVE("/";B6)-1);STXT(A6;TROUVE("/";A6) +1; NBCAR(A6)-TROUVE("/";A6))=STXT(B6;TROUVE("/";B6) +1; NBCAR(B6)-TROUVE("/";B6)))))
 

job75

XLDnaute Barbatruc
Par formule j'utiliserais plutôt celle-ci :
Code:
=OU(GAUCHE(A6;TROUVE("/";A6&"/")-1)=GAUCHE(B6;TROUVE("/";B6&"/")-1);SIERREUR(STXT(A6;TROUVE("/";A6); 9^9)=STXT(B6;TROUVE("/";B6); 9^9);FAUX))
 

Pièces jointes

  • Classeur1.xlsx
    11.5 KB · Affichages: 1

Gégé-45550

XLDnaute Accro
Merci Beaucoup, mais toutes les combinaisons ne sont pas valides (voir fichier joint)
Comme ça ?
VB:
=OU(SIERREUR(DROITE(A6;NBCAR(A6)-TROUVE("/";A6&"/"));CTXT(A6;0))=SIERREUR(DROITE(B6;NBCAR(B6)-TROUVE("/";B6&"/"));CTXT(B6;0));SIERREUR(GAUCHE(A6;TROUVE("/";A6&"/")-1);CTXT(A6;0))=SIERREUR(GAUCHE(B6;TROUVE("/";B6&"/")-1);CTXT(B6;0));SIERREUR(DROITE(A6;NBCAR(A6)-TROUVE("/";A6&"/"));CTXT(A6;0))=SIERREUR(GAUCHE(B6;TROUVE("/";B6&"/")-1);CTXT(B6;0));SIERREUR(GAUCHE(A6;TROUVE("/";A6&"/")-1);CTXT(A6;0))=SIERREUR(DROITE(B6;NBCAR(B6)-TROUVE("/";B6&"/"));CTXT(B6;0)))
Cordialement,
 

Pièces jointes

  • Classeur1 (5).xlsx
    10.6 KB · Affichages: 0

job75

XLDnaute Barbatruc
Là le VBA est bien utile :
VB:
Function Comparer(x1$, x2$) As Boolean
Dim s1, s2, ub%, i%, j%
s1 = Split(x1, "/")
s2 = Split(x2, "/")
ub = UBound(s2)
For i = 0 To UBound(s1)
    For j = 0 To ub
        If s1(i) = s2(j) Then Comparer = True: Exit Function
Next j, i
End Function
Bonne nuit.
 

Pièces jointes

  • Comparer(2).xlsm
    18.5 KB · Affichages: 4

RIVOIRA

XLDnaute Nouveau
Merci Beaucoup, job75. Ca fonctionne très bien. Je me permettrais de revenir vers vous un peu plus tard, sur la ppartie vba justement.

Bonne journée
 

Gégé-45550

XLDnaute Accro
Merci Beaucoup, job75. Ca fonctionne très bien. Je me permettrais de revenir vers vous un peu plus tard, sur la ppartie vba justement.

Bonne journée
Bonjour,
Nous n'avons été que deux à répondre à vos questions et j'ai été d'assez loin le premier, me semble-t-il.
Que vous préfériez la solution hyper propre de l'excellent job75 => aucun problème.
Toutefois j'aurais apprécié une réponse ou un commentaire sur la proposition du post #24.
À votre prochaine question, soyez-en sûr, je passerai mon chemin.
Cordialement,
 

job75

XLDnaute Barbatruc
Bonjour RIVOIRA, Gégé-45550,

Pour terminer voici une solution par formule qui utilise 4 noms définis premA derA premB derB.

La formule en colonne C est très simple :
Code:
=OU(premA=premB;premA=derB;derA=premB;derA=derB)
A+
 

Pièces jointes

  • Comparer par formule(1).xlsx
    12 KB · Affichages: 1

RIVOIRA

XLDnaute Nouveau
Bonjour ,

je suis désolé, de ne vous avoir pas répondu. Veuillez m'excuser, par rapport au temps que vous avez passé. Je n'ai pas trop l'habitude d'utiliser les forums.
Dorénavant, même si vous passez votre tour, je serais beaucoup plus vigilent à répondre à tous le monde.

Avec mes excuse encore une fois
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…