Supprimer toutes les lettres dans une case

Résolu
Poker1 -  
 poker1 -
Bonjour,

J'exporte des données via internet dans excel et j'aimerais supprimer les lettres dans certaines cases.
Ex : 1a0005e777 =10005777

Merci
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. coco49rico Messages postés 92 Statut Membre 76
     
    Bonjour,

    Si le format des données ne change pas, une solution est de taper la fonction suivante (en considérant que les données sont dans la case C15) :
    =GAUCHE(C15;1)&STXT(C15;3;4)&DROITE(C15;3)

    Rico
    0
  2. coco49rico Messages postés 92 Statut Membre 76
     
    Bonsoir,

    Question n°2 du schmilblick ?
    Le nombre de caractères est toujours de 10 ?
    En imbriquant des conditions SI et en vérifiant si c'est du texte ou un chiffre,il y a possibilité de filtrer (dans la limititation de 7 imbrications de SI)

    Rico
    0
  3. Poker1
     
    lol
    ET oui entre 10 et 11 ... Hélas
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour à tous

      Cette fonction personnalisée t'enlève tout ce qui n'est pas chiffre dans une cellule

      Function extrait_nbre(ByRef texto As String) As Double
      Dim reg As Object
      Dim extraction As Object

      ' instancie
      Set reg = CreateObject("vbscript.regexp")

      ' travaille sur toute la cellule
      reg.Global = True
      ' définit le modèle (caractères "digitaux" à N chiffres)
      reg.Pattern = "(\d?\d?\d)|(,)"

      ' éxécute l'extraction svt modèle (collection des digits...)
      Set extraction = reg.Execute(texto)
      ' concaténète les membres de la collection "extraction"
      For Each digit In extraction
      extrait_nbre = extrait_nbre & (digit.Value)
      Next digit

      Set extraction = Nothing
      Set reg = Nothing
      End Function


      A+
      Michel

      PS: texto peut être la référence d'une cellule
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. poker1
     
    Merci pour la macro

    Si j'ai bien compris je remplace "texto" par A1
    Est il possible de mettre A2:DM1800 car j'ai enormement de donné...
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      re,

      1/ tout à fait

      2/ Non, mais ca pourrait se faire par macro... je regarde et te dis.
      0
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Re-re,

    Tu ajoutes cette sub en dessous de la fonction extrait_nombre

    Sub extraire()
    Dim tablo()
    Dim valeur As String
    Dim cptrX As Long, cptrY As Long

    tablo = Range("A2:DM1800").Value
    For cptrX = LBound(tablo, 1) To UBound(tablo, 1)
    For cptrY = LBound(tablo, 2) To UBound(tablo, 2)
    valeur = tablo(cptrX, cptrY)
    tablo(cptrX, cptrY) = extrait_nbre(valeur)
    Next cptrY
    Next cptrX
    Application.ScreenUpdating=False
    Range("A2:DM1800").Value = tablo

    End Sub

    Michel
    0
  7. poker1
     
    Ok Super

    Merci pour ton aide.
    Bien pratique cette macro.

    @+
    0
  8. poker1
     
    Je ne trouve pas comment mettre le statut "Problème Résolu" ???

    Encore Merci
    0