Excel rechercher / comparer

Christophe -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je me sers régulièrement du logiciel Excel, mais le problème est que je ne m'y connais pas du tout en programmation. (J'ai excel 2003 sur windows XP)

Je souhaite comparer 2 listes et indiquer s'il trouve la valeur dans la colonne B l'emplacement de la cellule identique. Je m'explique :

Colonne A / Colonne B / Colonne C
ba bi / / gi
bu / / ru
re / / ma
ta / /ba
ro / /bi

Je souhaite qu'il compare la colonne A avec la C, et qu'il m'indique dans la colonne B les cellules de la colonne C qui sont présentes dans la A.
Exemple :

Colonne A / Colonne B / Colonne C
ba bi / C4 et C5 / gi
bu / X / ru
re / X / ma
ta / X / ba
ro / X / bi

La difficulté par rapport aux forum que j'ai vu est qu'il fallait que les cellules des colonnes A et C soient exactement les même, hors là même si une partie de la cellule est présente ça me va et il faut qu'il indique l'ensemble des cellules qu'il trouve (Comme si je faisais un Ctrl+F)

Merci d'avance, et bonne journée

1 réponse

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour
    un début de réponse ?
    à mettre dans un module (alt-F11 pour acceder à l'éditeur puis copier/coller)

    Public Sub cherche()
    Const lideb = 1
    Dim lifin As Long, lia As Long, lic As Long
    Dim pres As String
    lifin = Range("A65536").End(xlUp).Row
    For lia = lideb To lifin
      pres = ""
      For lic = lideb To lifin
        If InStr(lideb, Range("A" & lia).Value, Range("C" & lic).Value) > 0 Then
          pres = pres & " - C" & lic
        End If
      Next lic
      If pres = "" Then
        pres = "X"
      End If
      Range("B" & lia).Value = pres
    Next lia
    End Sub


    ou bien a attacher à un bouton de la boite a outils controles
    Private Sub CommandButton1_Click()
    Const lideb = 1
    Dim lifin As Long, lia As Long, lic As Long
    Dim pres As String
    lifin = Range("A65536").End(xlUp).Row
    For lia = lideb To lifin
      pres = ""
      For lic = lideb To lifin
        If InStr(lideb, Range("A" & lia).Value, Range("C" & lic).Value) > 0 Then
          pres = pres & " - C" & lic
        End If
      Next lic
      If pres = "" Then
        pres = "X"
      End If
      Range("B" & lia).Value = pres
    Next lia
    End Sub


    bonne suite
    0