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 :

Comparaison de deux chaines de caractères [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juillet 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2018
    Messages : 50
    Par défaut Comparaison de deux chaines de caractères
    Bonjour,
    Je voudrais comprendre le mécanisme qui me permettra de comparer deux chaine de caractères.
    voici mon problème:
    dans l'onglet Test1, j'ai les lignes suivantes:
    Windows server 2012
    Microsoft Windows Server 2012
    OPEN VMS 8
    Red Hat 5
    dans l'autre onglet Test2, j'ai les lignes suivantes:
    OPEN VMS 8
    Microsoft Windows Server 2012
    Red Hat 5 exemple 5.11
    je voudrais faire une comparaison entre Test1 et Test2 pour déterminer le nombre de mot identique?
    Merci de votre collaboration et de vos retour.
    Bien cordialement.
    MamaB

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la demande mérite d'être clarifiée.

    Une copie écran des deux listes et le résultat attendu serait pertinent pour éviter de tourner en rond sur la notion de "mot" et l'angle d'analyse

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juillet 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2018
    Messages : 50
    Par défaut Comparaison de deux chaines de caractères
    Bonjour,
    impossible pour moi de vous donner une copie d'écran, sachant que les données sont confidentiel.
    Dans l'onglet Test1, les donner ce trouvent dans la colonne E et pour Test2 colonne la colonne B
    Bien cordialement.

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    pas sure d'avoir compris la demande mais si tu cherches à comparer deux colonnes de deux onglets différents, et enregistrer dans un 3ème onglets en colonne A les codes identiques et en colonne B ceux qui sont présent en onglet 1 et non en onglet 2 et en colonne C l'inverse tu peux faire ainsi :
    NB : deux chaines écrites l'une avec espace et l'autre sans espace ou l'une avec "s" et l'autre sans "s" sont considérées différentes

    à tester et revenir avec plus de détail
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Sub testtttt()
    Application.ScreenUpdating = False
    Dim f1 As Worksheet
    Dim f2 As Worksheet
    Dim f3 As Worksheet
    Set f1 = Sheets("Test1")
    Set f2 = Sheets("Test2")
    Set f3 = Sheets("RESULTAT")
    Dim TblBD1
    Dim TblBD2
    Dim i As Integer
    Dim j As Integer
    Dim Lig As Long
    Dim Identique As Boolean
    Dim Test1NonTest2 As Boolean
    Dim Test2NonTest1 As Boolean
     
    f3.Cells.ClearContents
     
    f3.Cells(1, 1) = "IDENTIQUE"
    f3.Cells(1, 2) = "existe en test 1 et non en test 2"
    f3.Cells(1, 3) = "existe en test 2 et non en test 1"
     
     
     
     
    TblBD1 = f1.Range("A2:A" & f1.Range("A" & Rows.Count).End(xlUp).Row)
    TblBD2 = f2.Range("A2:A" & f2.Range("A" & Rows.Count).End(xlUp).Row)
    Lig = 2
     
    For i = LBound(TblBD1) To UBound(TblBD1)
        Identique = False
        Test1NonTest2 = False
        Test2NonTest1 = False
     
        '*************************************Article identique *********************************
        For j = LBound(TblBD2) To UBound(TblBD2)
            If TblBD2(j, 1) = TblBD1(i, 1) Then
                Identique = True
                Exit For
            End If
        Next j
     
        If Identique = True Then f3.Cells(Lig, 1) = TblBD2(j, 1)
           If f3.Cells(Lig, 1) <> "" Then Lig = Lig + 1
      Next i
     
      Lig = 2
        '*************************************Figure en test1 et non en Test2  *********************************
     
     
          Dim plage1 As Range
          Dim plage2 As Range
          Dim Cel As Range
          Dim dernligne As Long
       Set plage1 = f1.Range("A2:A" & f1.Range("A" & Rows.Count).End(xlUp).Row)
       Set plage2 = f2.Range("A2:A" & f2.Range("A" & Rows.Count).End(xlUp).Row)
     
       For Each Cel In plage1
       P = WorksheetFunction.CountIf(plage2, Cel.Value)
       If P = 0 Then f3.Cells(Lig, 2) = f1.Cells(Cel.Row, 1)
      If f3.Cells(Lig, 2) <> "" Then Lig = Lig + 1
       Next Cel
     
     '*************************************Figure en test2 et non en Test2 *********************************
     Lig = 2
      For Each Cel In plage2
       C = WorksheetFunction.CountIf(plage1, Cel.Value)
       If C = 0 Then f3.Cells(Lig, 3) = f1.Cells(Cel.Row, 1)
       If f3.Cells(Lig, 3) <> "" Then Lig = Lig + 1
       Next Cel
     
    MsgBox ("Controle effectué")
     
    Application.ScreenUpdating = True
    f3.Select
    End Sub
    un fichier comme test
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur Méthodes Industrialisation
    Inscrit en
    Octobre 2020
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Méthodes Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2020
    Messages : 39
    Par défaut
    Citation Envoyé par MamaB Voir le message
    Bonjour,
    impossible pour moi de vous donner une copie d'écran, sachant que les données sont confidentiel.
    Dans l'onglet Test1, les donner ce trouvent dans la colonne E et pour Test2 colonne la colonne B
    Bien cordialement.
    Bonjour MamaB,

    Joelevrai ne demande évidement pas les données confidentielles mais un exemple anonymisé de ta demande.

    Un peu comme dans ton premier message mais plus explicite.

    Comme ci-dessous si j'ai bien compris :

    Test1 :
    Nom : Capture.PNG
Affichages : 168
Taille : 2,6 Ko

    Test2 :
    Nom : Capture2.PNG
Affichages : 168
Taille : 2,3 Ko

    Résultat : 2 (OPEN VMS 8 et Microsoft Windows Server 2012)

    Zeabon

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Le résultat est 10 mots OU 2 chaines complètes de cellule

    Mais ça peut également être tout autre chose ! 11 mots car 2 fois 2012 ?

    D'où la nécessité de bien poser la définition de "mot"

  7. #7
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juillet 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2018
    Messages : 50
    Par défaut Comparaison de deux chaines de caractères
    Bonjour,
    Merci pour votre aide et quelque explication sur ma demande:

    Je dois tester a partir de TEST1 les données dans TEST2.
    cad dans TEST1, j'ai deux fois la notion de Windows serveur 2012 et comparer avec TEST2 que les mots de TEST1 sont bien présent dans TEST2.
    le résultat doit être
    TEST1
    Windows server 2012 ok trouver
    Microsoft Windows Server 2012 ok trouver
    OPEN VMS 8 ok trouver
    Red Hat 5 ok trouver
    Merci de votre collaboration et de vos retour.
    Bien cordialement.
    MamaB

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaison de deux chaines de caractères
    Par khaled.mann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/06/2009, 11h00
  2. Problème de Comparaison de deux chaines de caractéres
    Par developppez dans le forum Requêtes
    Réponses: 10
    Dernier message: 16/03/2009, 16h21
  3. comparaison de deux chaines de caractères
    Par Toomaaaaa dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2008, 18h03
  4. comparaison de deux chaines de caractères en asp
    Par MortDansLAme dans le forum ASP
    Réponses: 7
    Dernier message: 10/01/2008, 12h36
  5. comparaison de deux chaines de caractères
    Par zazou41 dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2006, 14h26

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