Excel rechercher / comparer

Fermé
Christophe - Modifié par Christophe le 29/04/2011 à 15:08
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 29 avril 2011 à 15:27
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

A voir également:

1 réponse

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
29 avril 2011 à 15:27
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