Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Supprimer les chiffres

ChantalTreize

XLDnaute Occasionnel
Bonjour à tous,
j'ai une liste de 10000 noms, tous différents en nombre de lettre, avec chacun un numéro mais pas tous de même taille de 3 à 8 chiffres toujours à droite du nom, comment supprimer ces numéros.
Par avance merci
Chantal
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Au jugé, car testé sans échantillons
Ici formule à mettre en B1 puis recopie vers le bas
Code:
=GAUCHE(A1;MIN(CHERCHE({0.1.2.3.4.5.6.7.8.9};A1&"0123456789"))-1)
Si en A1, on a: Staple1600
alors la formule en B1 affichera: Staple

EDITION: Bonjour pierrejean
 

Hervé S.

XLDnaute Nouveau
Je propose cette solution.
Prenons cet exemple : abcd1234567 est en cellule A2

1. En cellule B2, on compter le nombre de chiffre dans la chaine de caractère, solution trouvé ici
=SOMMEPROD((ESTNUM(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1))*1)
Avec cette formule on trouve qu'il y a 7 chiffres dans abcd1234567

2. En cellule C2, on compter le nombre de caractère total
=NBCAR(A1)
On trouve 11

3. En cellule D2, on compte le nombre de lettres.
11 caractères au total - 7 chiffres = 4.

4. En cellule E2, on extrait de la chaine les caractères 1 à 4.
formule STXT =STXT(A2;1;D2)

On regroupe toute les formules en une seule :
=STXT(A2;1;NBCAR(A2)-SOMMEPROD((ESTNUM(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1)*1))*1))

Et voilà, le tour est joué...
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour à tous,
Ceci par vba n'efface que les chiffres à droite contenu dans la cellule (sans colonne supplémentaire)
Colonne A dans l'exemple
VB:
Sub EffaceChiffreDroite()
    Dim Plage, C As Range, i&
    With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
    Set Plage = Feuil1.Range("A1:a" & Cells(Rows.Count, "A").End(xlUp).Row)    ' A adapter
    For Each C In Plage
        For i = Len(C) To 1 Step -1
            If IsNumeric(Mid(C, i, 1)) Then
                C = Left(C, Len(C) - 1)
            Else
                Exit For
            End If
        Next
    Next
    With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub
 

Pièces jointes

  • Efface chifresDroite.xlsm
    83.7 KB · Affichages: 7
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Si on s'abandonne au VBA, alors je léve mon coude
(cf message#7)
VB:
Function LETTRES(Plg As Range) As String
With CreateObject("VBScript.RegExp")
    .Pattern = "[^a-z]": .Global = -1: .IgnoreCase = -1
    LETTRES = .Replace(Plg.Value, "")
End With
End Function
Si on a en A1 ab89cd1234567
et en B1: =LETTRES(A1)
Alors B1 renvoie abcd
 

Hervé S.

XLDnaute Nouveau
Pour illustrer ma réponse précédente :


Cette solution fonctionnent uniquement quand les chiffres sont à la droite du nom, comme indiqué dans la question de départ : "chiffres toujours à droite du nom"
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
289
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…