Supprimer mot en colonne C si présent en B

tagatao Messages postés 21 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour à tous,

Je souhaite faire un nettoyage d'une base excel de 1500 lignes à peu près....

Alors voilà, je ovus explique mon souci :

Je travaille sur 2 colonnes :

B C
BERGSON (RUE HENRI BERGSON)
BERLIOZ (RUE HECTOR BERLIOZ)
BERRY (RUE DU BERRY)
BERTHELOT (IMPASSE MARCELLIN BERTHELOT)

B fait donc apparaitre le dernier mot de C.

Mon but est donc d'enlever ce dernier mot de C de sorte à arriver à celà :

B C
BERGSON (RUE HENRI )
BERLIOZ (RUE HECTOR )
BERRY (RUE DU )
BERTHELOT (IMPASSE MARCELLIN )

J'ai tenté 2 pistes :
- enlever en C tout mot se situant avant la parenthèse ), avec la fonction rechercher, mais ca marche pas
-faire une rechercheV entre B et C, mais là non plus je m'en sors pas....

Auriez vous une idée pour me faire avancer ?

Merci à vous !

A voir également:

3 réponses

Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 451
 
Bonjour
avec cette formule peut être pour créer une colonne D, sur ligne D2:

=GAUCHE(B2;NBCAR(B2)-NBCAR(A2)-2))&")"

passer à -1 plutôt que -2 si vous voulez un blanc avant la dernière parenthèse

Vous pouvez ensuite copier cette colonne et faire un collage spécial valeur sur la colonne B et enfin supprimer les formules.
crdlmnt
--
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
2
tagatao Messages postés 21 Statut Membre
 
Super, t'es un champion, pas con l'idée de soustraire le Nb de caractère de chaque cellule, ca marche pour tous les cas.....

Yeepee
0
ccm81 Messages postés 11033 Statut Membre 2 434
 
bonjour à tous les deux

ou une solution avec macro (alt-F11 pour acceder à l'éditeur puis coller le code)

Option Explicit 

Sub supprime() 
Const lideb = 1 
Const co1 = "B" 
Const co2 = "C" 
Dim li As Long, lifin As Long 
Dim mot1 As String, mot2 As String 
lifin = Range(co1 & 65536).End(xlUp).Row 
For li = lideb To lifin 
  mot1 = Range(co1 & lideb + li - 1).Value 
  mot2 = Range(co2 & lideb + li - 1).Value 
  mot2 = Replace(mot2, mot1, "") 
  Range(co2 & lideb + li - 1).Value = mot2 
Next li 
End Sub

bonne suite
0