Remplac/retire des lettres ds séquen de chifr

Résolu
antonia -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

sous EXCEL, dans une base de données de codes articles, j'ai des références numériques (qui vont de une à six chiffres) dont des variantes qui se différencient par une lettre au bout (ex: l'article réf 12025 existe aussi en variante réf 12025B et en 12025C, 12025D, etc.). Pour mes analyses produit, je cherche comment retirer la "lettre" pour ne laisser apparaître que la partie numéraire. Ma liste comporte plus de 40000 lignes dont les 3 quarts affichent ces variantes avec une lettre. En plus, ces cellules sont automatiquement au format TEXTE et non au format NOMBRE. Je n'arrive pas à outiliser le menu remplacer pour que cela s'applique à toute la colonne. Qqun a des suggestions?
Configuration: Windows XP Internet Explorer 7.0

4 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Avec une formule toute simple a coller dans une cellule sur la première ligne pour traiter les cellule colonne A et incrémenter vers le bas, (à adapter)

    =SI(ESTTEXTE(A1);GAUCHE(A1;NBCAR(A1)-1)*1;A1)

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    1
    1. antonia
       
      Merci Mike-31, problème résolu! c'est parfait.
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour Antonia,
    40000 lignes, waouh!

    on va donc passer par une macro qui enlève les lettres presque d'un seul coup
    dans cet exemple les ref sont en colonne A ( sur ton appli remplace les range("A....) par la lettre de ta colonne de ref)

    Function extrait_nbre(ByRef texto As String) As Double
        Dim reg As Object
        Dim extraction As Object
      
        Set reg = CreateObject("vbscript.regexp")
        reg.Global = True
        reg.Pattern = "(\d?\d?\d)|(,)"
        Set extraction = reg.Execute(texto)
        For Each digit In extraction
            extrait_nbre = extrait_nbre & (digit.Value)
        Next digit
        
        Set extraction = Nothing
        Set reg = Nothing
    End Function
    
    Sub derlettre()
    Dim derlig As Long
    derlig = Range("A65536").End(xlUp).Row
    Application.ScreenUpdating = False
    Range("A1:A" & derlig) = extrait_nbre(Range("A1").Value)
    End Sub


    Pour installer:
    tu fais un copier de ce code
    Alt+F11 tu es dans VBA
    insertion- module (ou Ctrl+R)
    coller

    pour lancer:
    Dans la feuille Excel:
    outils-macros-macro tu sélectionnes "derlettre" exécuter

    0
  3. antonia
     
    Merci pour ta réponse rapide Michel... malheureusement, je n'y comprends rien car je n'ai jamais fait de macro...je vais tout de même tenter de déchiffrer...
    merci encore
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Pas, grave de toutes façons, j'avais fait une grosse C...
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    On te vois de temps en temps sur ce Forum, il serait bien que tu deviennes membre, tu pourrais mettre ton statut en résolu ou demande à la modération de le faire pour toi, clic sur le triange jaune et demande à la modération de mettre le statut en résolu pour toi

    Merci

    A+
    Mike-31

    Un problème sans solution est un problème mal posé  (Einstein)
    0