suppression de lettre a droite de cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

miremy

XLDnaute Nouveau
Bonjour à tous
Apres maintes recherches sur différents forums, je n'ai pas trouvé ce que je recherche.
Voilà: Dans une colonne dans chaque cellule je voudrais supprimer les dernières lettres si le mot se termine par
_Ex: (GER, BEL,USA, IRE, (()), () , etc...........)
Ces lettres sont en majuscules.
Ces colonnes peuvent contenir plus de 20 000 cellules
J'ai fais deux macros
_ " Effacement1" Fonctionne à peu près ne m'enlève pas toutes les lettres(Dans ce cas elle oublie les GB, E1,...)
_ "Effacement2" m'enlève toutes les lettres des mots entiers par exemple: " Belle de jour(GER)" devient" le de jour" alors que j'ai besoin d'enlever (GER) seulement.
En plus il me faut garder les doublons.
J'espère avoir été assez clair dans ma demande.
Je suis sous Excel 2000.
Merci d'avance.
Ci-joint Fichier pour une meilleure compréhension

Miremy
 

Pièces jointes

Dernière édition:
Re : suppression de lettre a droite de cellules

Bonjour
en C2 :
=GAUCHE(C2;NBCAR(C2)-4)
te supprime les 3 derniers caractères plus l'espace avant.
Si tes 3 lettres à supprimer sont toujours comme ça c'est OK. Il te restera à faire un recherche remplacer pour supprimer aussi les parenthèses qui restent.
 
Re : suppression de lettre a droite de cellules

Bonjour à tous


Une autre piste (sans macro)
Données/Convertir Délimité Séparateur : (
et le tour est joué en deux clics, trois mouvements (ou vice et versa) 😉

(en espérant qu'il n'y ait pas d'autres ( dans la cellule)

PS: Bien sur on peut laisser tourner l'enregistreur de macros, si vraiment on estime qu'il faille passer par VBA.

EDITION: Bonjour Job75 😉
 
Dernière édition:
Re : suppression de lettre a droite de cellules

Bonjour miremy, Misange, Jean-Marie,

Deux solutions possibles, suivant ce que vous voulez faire exactement.

En D1, à tirer vers le bas :

Code:
=SUPPRESPACE(GAUCHE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";));NBCAR(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";)))-3*EXACT(DROITE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";));3);MAJUSCULE(DROITE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";));3)))))
En E1, à tirer vers le bas :

Code:
=SUPPRESPACE(GAUCHE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";));NBCAR(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";)))-3*EXACT(SUPPRESPACE(DROITE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";));3));MAJUSCULE(DROITE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(C1;"(";);")";));3)))))
Les différences entre les 2 solutions sont mises en évidence par une Mise en forme conditionnelle (MFC).

Fichier joint.

A+
 

Pièces jointes

Re : suppression de lettre a droite de cellules

Je vous remercie de la rapidité de vos réponses.
La solution de job 75 fonctionne .je vais essayer de décortiquer la formule.

Quant à moi J'ai trouvé ce qui n'allait pas dans la macro1
Il suffisait de mettre True à la place de False à la fin de chaque élément

Selection.Replace What:=" GB", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False

Encore mille fois merci😀
Miremy
 
Re : suppression de lettre a droite de cellules

Re,

Une solution VBA :

Code:
Sub SupMaj()
Dim P As Range, tablo, i&, t$, j%
Set P = Range("C1:D" & Cells(Rows.Count, "C").Row)
tablo = P 'matrice, plus rapide
For i = 1 To UBound(tablo)
  t = tablo(i, 1)
  For j = Len(t) To 1 Step -1
    If Mid(t, j, 1) <> UCase(Mid(t, j, 1)) Then Exit For
  Next
  tablo(i, 2) = Left(t, j)
Next
P = tablo
End Sub
La macro supprime toutes les majuscules à droite jusqu'à la 1ère minuscule.

Fichier joint.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour