IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] égalité x&y&z= x&z&y=y&x&z etc..


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut [VBA-E] égalité x&y&z= x&z&y=y&x&z etc..
    Bonjour,
    voila j'aimerais comparer des colonnes entre elle ( jusque la pas de souci) mais dans les colonnes en questions 3 valeurs séparés par des & sont indiqués

    j'aimerais que si ces valeurs soit toute presente dans ma cellule de reference .. cela ne me l'indique pas en erreur

    Jusque la mon code m'indique qu'une égalité parfaite me signale ) c'est a dire
    x&y&z =x&y&z<>x&z&y<>z&x&y etc...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En écrivant cette ligne
    x&y&z =x&y&z<>x&z&y<>z&x&y etc...
    tu mélanges des booléens et des strings
    Teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim result As Boolean
    result = x And y And z = x And y And z <> x And z And y <> z And x And y
    'etc...
    Je ne sais pas si ça fera ce que tu veux mais au moins la syntaxe ne provoquera pas d'erreur

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut
    non non en faite je me suis mal exprimée

    Je veux justement
    que la cellule contenant

    0.1 & 0.3 & 0.4 soit indiqué comme égale a la cellule contenant
    0.1 & 0.4 & 0.3 égale à
    0.3 & 0.4 & 0.1 égale à
    0.3 & 0.1 & 0.4 ègale à
    0.4 & 0.1 & 0.3 égale à
    0.4 & 0.3 & 0.1

    Que toute ces cellules soient égale
    alors qu'a l'heure actuelle ce que j'écris étant considéré comme du texte ça ne passe pas

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Donc, si je comprends bien (avant de me lancer ) dans une cellule tu as
    0.1 & 0.3 & 0.4
    et dans les autres toutes les combinaisons possibles de ces trois valeurs ?
    Tu dis
    A+

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut
    non pas forcement en faite
    bon concretement

    A B C
    0.1 & 0.3 & 0.4 0.3 & 0.4 & 0.1 Ici c'est ok!

    1.2 & 1.7 & 2.7 2.7 & 1.2 & 1.7 ici c'est encore ok!

    7.4 & 4.1 & 2.4 4.1 & 2.4 & 9.4 la par contre c'est pas bon !


    tu vois ce que je veux dire ?

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    C'est ok !

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tiens, dans la colonne A, j'ai mis
    0.1 & 0.3 & 0.4 0.3 & 0.4 & 0.1
    1.2 & 1.7 & 2.7 2.7 & 1.2 & 1.7
    7.4 & 4.1 & 2.4 4.1 & 2.4 & 9.4
    0.1 & 0.3 & 0.4
    0.1 & 0.4 & 0.3
    0.3 & 0.4 & 0.1
    0.3 & 0.1 & 0.4
    0.4 & 0.1 & 0.3
    0.4 & 0.3 & 0.1
    teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub UneCombinaisonDePlusUne()
    Dim LeMot As String, LeTableau
    Dim NgreLignes As Long, NoLigne As Long, NoCol As Byte
    Dim ok() As Boolean
    LeMot = "0.1 & 0.3 & 0.4"
    LeTableau = Split(LeMot, " & ")
    NbreLignes = 10
    NoCol = 1
    For NoLigne = 1 To NbreLignes
        ReDim Preserve ok(NoLigne)
        ok(NoLigne) = Analyse(LeTableau, NoLigne, NoCol)
        Cells(NoLigne, NoCol + 1).Value = ok(NoLigne)
    Next
    For i = 1 To NbreLignes
        MsgBox ok(i)
    Next
    End Sub
     
    Function Analyse(LeTableau, LaLigne, NoCol) As Boolean
    Dim i as Integer
    Analyse = True
    For i = 0 To UBound(LeTableau)
        Analyse = Analyse And Cells(LaLigne, NoCol).Value Like "*" & LeTableau(i) & "*"
    Next
    End Function
    Tu dis

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Déjà, ça ne fonctionne pas. J'mé trompé dans mon raisonnement...
    Le Tableau doit se faire sur la donnée lue, pas sur la donnée de départ
    Tu sauras corriger ?
    A+

    Edit
    C'est plus compliqué, il faudra compter les True pour qu'Analyse soit true
    J'explique : La donnée lue peut avoir plus de valeurs que la donnée à laquelle elle est comparée, et donc, la boucle ne doit pas se limiter au nombre de données contenues dans la donnée de départ. Chais pas si je suis très clair sur ce coup-là

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Par défaut
    euuuh j'ai pas tout compris mais effectivement la donnée est lu dans un tableau


    voila ma comparaison initiale en faite


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Sub rrrrr
    iLR1 = Worksheets(1).Cells(65535, 1).End(xlUp).Row
    iLR2 = Worksheets(2).Cells(65535, 1).End(xlUp).Row
     
    Tablo2 = Worksheets(1).Range("A2:A" & iLR1)
     
    With Worksheets(2)
     
    .Range("A2:A" & iLR2).Interior.ColorIndex = 4
    For f = 2 To iLR2
     
    a = .Cells(f, 1).Value
     
     For jo = 1 To UBound(Tablo2)
       ko = 1
     
         If Tablo2(jo, ko) = a Then YA = True
     
     
     If YA Then
     .Cells(f, 1).Interior.ColorIndex = xlColorIndexNone
     
     YA = False
     
     Exit For
     End If
     Next
     Next
     
     
    End With
     
     
    End Sub
    pourrais tu m'expliquer un ti peu plus
    merci

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je rrrexplique :
    Tu as une donnée dans une cellule.
    Cette donnée est déparée par " & "
    Avec Split, je crée un tableau des données de la cellule
    Ensuite je n'ai plus qu'à vérifier que les données du tableau sont bien contenues dans la donnée de la cellule suivante. Ce que je fais avec like "*" letableau(n) & "*"
    Les étoiles servent à dire à like que la valeur letableau(n) peut se trouver n'importe où dans la cellule comparée.
    Sauf que mon code se limite aux 3 valeurs de départ (0.1 & 0.3 & 0.4) 1, 2 et 3, alors que tu peux avoir beaucoup plus de valeurs dans les cellules comparées (1.2 & 1.7 & 2.7 & 2.7 & 1.2 & 1.7) 1, 2, 3, 4, 5 et 6.
    Ouf
    Donc mon code n'est pas bon. Mais j'espérais que tu aies le courage de te plonger dedans et que tu le corrigerais.
    Et pour ça, tu dois "Spliter" la valeur de la nouvelle cellule et non la donnée de départ.
    Ensuite, dans la fonction, faut compter les true. Et si le nombre de true correspond au nombre de valeurs contenues dans la donnée à comparer, ici 0.1 & 0.3 & 0.4, alors c'est ok. Sinon c'est KO.

    Mais là encore, je vois un autre pb : Dans l'un des exemples que tu donnes, tu as 2 fois la même valeur... Si cette possibilité existe, alors faudra encore modifier la procédure pour supprimer les doublons dans le tableau
    ...n'est pas sorti de l'auberge. Pas compliqué mais quelques lignes de code de plus

    Edit
    J'ai oublié de te poser la question qui tue : Tu as compris ce coup-ci ?

    PS - Tu as testé mon code tout bête, en collant les données dans la colonne A d'une feuille toute neuve ? Ça pourrait t'aider à comprendre

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tiens, je t'ai fait ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub UneCombinaisonDePlus()
    Dim NgreLignes As Long, NoLigne As Long, NoCol As Byte
    Dim ok() As Boolean
        NbreLignes = 10
        NoCol = 1
        For NoLigne = 1 To NbreLignes
            ReDim Preserve ok(NoLigne)
            ok(NoLigne) = Analyse(NoLigne, NoCol)
            Cells(NoLigne, NoCol + 1).Value = ok(NoLigne)
        Next
    End Sub
     
    Function Analyse(LaLigne, NoCol) As Boolean
    Dim LeMot As String, LeTableau
    Dim i As Integer, ok As Byte
    ' LeMot = La donnée de départ que tu veux comparer. Si tu la lis dans une cellule,
    ' tu fais LeMot = Cells(NoLigne1,NoColonne1).value
    'à ne pas confondre avec NoLigne et NoCol qui sont l'adresse de la cellule lue
        LeMot = "0.1 & 0.3 & 0.4"
        LeTableau = Split(Cells(LaLigne, NoCol).Value, " & ") 'la donnée lue
        For i = 0 To UBound(LeTableau)
            If LeMot Like "*" & LeTableau(i) & "*" Then ok = ok + 1
        Next
        Analyse = ok = UBound(Split(LeMot, " & ")) + 1 ' * explication *
    End Function
    Ne fonctionne tel quel que si tu n'as pas de doublon dans une cellule

    * explication * + 1 car Split crée un tableau dont les index commencent à 0
    alors que ok comptabilise chaque correspondance
    Chuis quand même 'achement gentil

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    bonjour
    je t'ai fais ça, librement inspiré de ce que t'as déja fais ouskel, juste parce que je ne connaissais pas la fonction split et que j'ai voulu voir comment ça marche, et parce que je crois qu'on a pas compris la même chose a tes explications.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Function analyse(mot1, mot2)
    référence = Split(mot1, "&")
    comparant = Split(mot2, "&")
        If UBound(référence) = UBound(comparant) Then
         ReDim vrai(UBound(référence))
        Else
         analyse = ""
        Exit Function
        End If
    For i = 0 To UBound(référence)
     For j = 0 To UBound(comparant)
       If référence(i) = comparant(j) Then vrai(i) = True
     Next j
     Next i
    For u = 1 To UBound(vrai)
    If vrai(0) = vrai(u) Then v = v + 1
    Next u
    If v = UBound(vrai) Then
    analyse = True
    Else
    analyse = False
    End If
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub spliter_de_base()
    lemot = "1.2&0.3&0.6&4.5"
    compare = "1.2&0.6&4.5&0.3"
    If analyse(lemot, compare) = True Then
    MsgBox "glop glop"""
    Else: MsgBox "pas glop, pas glop"
    End If
    End Sub
    a toi de voir comment tu vas comparer tes données et de faire la boucle qui va bien.
    les espaces comptent
    1.2 n'est pas égal a 1 .2
    l'ordre comparant et référence n'a pas d'importance
    analyse(X1,X2) = analyse(X2,X1) du moins ils donneront tout les 2 true ou tout les deux vide

    a titre d'exemple, je t'en ai fais une qui compare les données de la colonne A (référence)par rapport a la colonne B (comparant)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub spliter()
    For Each cel In Range("a1,a2")
     For Each valeur In Range("b1:b10")
      If analyse(cel, valeur) = True Then
    MsgBox cel.Address & Chr(10) & cel.Value & Chr(10) _
    & valeur.Address & Chr(10) & valeur.Value & Chr(10) _
    & "glop glop"
    ElseIf analyse(cel, valeur) = False Then
    MsgBox cel.Address & Chr(10) & cel.Value & Chr(10) _
    & valeur.Address & Chr(10) & valeur.Value & Chr(10) _
    & "pas glop pas glop"
    Else
    MsgBox cel.Address & Chr(10) & cel.Value & Chr(10) _
    & valeur.Address & Chr(10) & valeur.Value & Chr(10) _
    & "données non valides"
    End If
    Next valeur
    Next cel
    End Sub

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    correction.
    il reste une faille a trouver, je viens de m'en apercevoir
    si aucune donnée ne correspond, il vas donner vrai aussi, je cherche, je reste sur le coup.
    voila, version finale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Function analyse(mot1, mot2)
        référence = Split(mot1, "&")
        comparant = Split(mot2, "&")
        If UBound(référence) = UBound(comparant) Then
            ReDim vrai(UBound(référence))
        Else
            analyse = ""
            Exit Function
        End If
        For i = 0 To UBound(référence)
             For j = 0 To UBound(comparant)
                 If référence(i) = comparant(j) Then vrai(i) = True
             Next j
        Next i
        For u = 1 To UBound(vrai)
              If vrai(0) = True Then
                    If vrai(0) = vrai(u) Then v = v + 1
              End If
        Next u
        If v = UBound(vrai) Then
              analyse = True
          Else
              analyse = False
        End If
    End Function

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu n'as pas précisé si tu pouvais avoir des doublons mais bon... Je n'allais pas me faire em...pressionner par cette éventualité ridicule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Option Explicit
    Sub UneCombinaisonDePlus()
    Dim NbreLignes As Long, NoLigne As Long, NoCol As Byte
        NbreLignes = 9 'N° dernière ligne de la plage à vérifier
        NoCol = 1 'données placées sur la colonne A
        For NoLigne = 1 To NbreLignes 'on parcours la plage et on colle ...
                                      '... le résultat sur la colonne suivante
            Cells(NoLigne, NoCol + 1).Value = Analyse(NoLigne, NoCol) 'VRAI ou FAUX
        Next
    End Sub
     
    Function Analyse(LaLigne, NoCol) As Boolean
    Dim LeMot As String
    Dim LeTableau
    Dim Tableau
    Dim i As Integer, cebon As Byte
    ' pour prendre LeMot dans une cellule :
    ' LeMot = Cells(NoLigne1,NoColonne1).value
        LeMot = "0.1 & 0.3 & 0.4"
        LeTableau = Split(Cells(LaLigne, NoCol).Value, " & ") 'la donnée lue
        Tableau = NettoyageDoublons(LeTableau) 'suppression des doublons
        For i = 0 To UBound(Tableau)
            If LeMot Like "*" & Tableau(i) & "*" Then cebon = cebon + 1
        Next
        Analyse = cebon = UBound(Split(LeMot, " & ")) + 1
    End Function
     
    Function NettoyageDoublons(LeTableau)
    Dim DonneeOk()
    Dim trouvé As Boolean, n As Byte, i As Byte, j As Byte
    ReDim Preserve DonneeOk(0)
        DonneeOk(0) = LeTableau(0)
        j = 0
        For i = 0 To UBound(LeTableau)
            For n = 0 To j 'Vérif donnée pas déjà stockée
                trouvé = trouvé Or LeTableau(i) = DonneeOk(n)
            Next n
            If Not trouvé Then 'on stocke la nouvelle donnée
                j = j + 1
                ReDim Preserve DonneeOk(j)
                DonneeOk(j) = LeTableau(i)
            End If
            trouvé = False
        Next
        NettoyageDoublons = DonneeOk
    End Function
    Tu ne devrais avoir que la première procédure à modifier afin de l'adapter à tes N° de lignes et de colonnes
    A+

    Le test : Pièce jointe 12588

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Je pense :
    1/ Split des 2 chaines de caracteres dans 2 tableaux
    2/ Si les 2 tableaux n'ont pas la même taille => Pas égaux
    3/ Sinon, trier les 2 tableaux
    4/ Comparer 1 à 1 les index de chaque tableau avec l'autre, et si une seule différence => Pas égaux. Sinon Egaux

    Pour le 3/ il faut une fonction de tri d'un Array, c'est là un exercice type... car on commence par trier des chaines de caracteres, puis on affine avec un parametre facultatif pour la casse, ensuite, on rajoute un nouveau parametre facultatif pour le type de donnees (vbString, vbDouble, vbDate...)

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ce n'est pas la question. Un tableau peut être contenu dans l'autre plus long

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Hein? je n'ai pas lu tous vos codes, juste ce que titeZ demande et nous n'avons pas du comprendre le meme probleme.
    Pour moi, dans la feuille Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A                B                C
    0.1&0.3&0.4      0.3&0.4&0.1      vrai
    1.2&1.7&2.7      2.7&1.2&1.7      vrai
    7.4&4.1&2.4      4.1&2.4&9.4      faux
    Donc dans la colonne C, on compare A avec B, et ils sont égaux si les valeurs entre les "&" sont identiques, quel que soit leur ordre...
    Et si une des chaines est plus longue que l'autre, pour moi c'est faux, meme si une contient l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A                B                C
    7.4&4.1&2.4      4.1&2.4&9.4&7.4  faux
    PS. rien a voir avec le sujet, ca serait cool d'avoir des balises [pre] car la j'ai utilise des balises #...

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde
    A+

    PS. rien a voir avec le sujet, ca serait cool d'avoir des balises [pre] car la j'ai utilise des balises #...
    A qui le dis-tu ? Tu as vu ma copie d'écran ?

  19. #19
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Bah c'est ce que j'ai mis dans ma 1ere boite de code... avec la mise en forme en plus...
    En fait, si j'etais moderateur , j'aurai rajouté des balises [pre]...euh... de code à cette partie... juste idée de voir...

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par dadavyvy
    Hein? je n'ai pas lu tous vos codes, juste ce que titeZ demande et nous n'avons pas du comprendre le meme probleme.
    Pour moi, dans la feuille Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A                B                C
    0.1&0.3&0.4      0.3&0.4&0.1      vrai
    1.2&1.7&2.7      2.7&1.2&1.7      vrai
    7.4&4.1&2.4      4.1&2.4&9.4      faux
    Donc dans la colonne C, on compare A avec B, et ils sont égaux si les valeurs entre les "&" sont identiques, quel que soit leur ordre...
    Et si une des chaines est plus longue que l'autre, pour moi c'est faux, meme si une contient l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A                B                C
    7.4&4.1&2.4      4.1&2.4&9.4&7.4  faux
    PS. rien a voir avec le sujet, ca serait cool d'avoir des balises [pre] car la j'ai utilise des balises #...
    Sauf que dans ton dernier exemple, il veut "VRAI"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] VBA LIST égalité
    Par rhonald dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2012, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo