Extraction chiffre

Bonjour,

je souhaite extraire les 6 chiffres d'une cellule alphanumérique dans excel 2013. Les 6 chiffres sont à suivre dans la zone mais pas toujours au même endroit
Merci de votre aide

6 réponses

  1. Bonjour,
    Peut-être avec une matricielle de Jacques Boisgontier;
    =STXT(A1;EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1)));0);6)
    -Valider avec Maj+Ctrl+Entrée
    2
    1. Bonjour
      Méthode simple
      -Sélectionnez tous les textes de la colonne où doivent être extrait les nombres
      -Sur le ruban, sélectionnez l'option "Données"
      -Dans "Outils de Données" cliquez sur convertir (choisir "délimité" puis "espace" comme séparateur)
      dans la colonne à droite copiez cette formule
      =SI(ESTNUM(B2);B2;SI(ESTNUM(C2);C2;D2)) et tirez vers le bas
      Cdlt
      0
      1. Re,k

        je te propose une fonction personnalisée en VBA si tu as quelques notions, ouvre le visual Basic et colle ce code
        Function EXTNUM(Cellule As Range)
        S = Cellule.Value
        Application.Volatile
        For i = 1 To Len(S)
        If IsNumeric(Mid(S, i, 1)) Then
        S = Mid(S, i)
        Exit For
        End If
        Next
        EXTNUM = Val(S)
        End Function


        ensuite sur ta feuille de calcul appelle la fonction dans la cellule de ton choix.
        si tu as besoin de plus de détail fait signe
        0
        1. Bonjour
          Une proposition à l'aide de colonnes intermédiaires
          Extraction de la position des chiffres contenus en A2 sur 10 colonnes (B2 à K2)
          =SI(ESTERREUR(TROUVE(COLONNE()-2;$A2));"";TROUVE(COLONNE()-2;$A2
          ))
          à répéter de 0 à 9
          extraction de la chaine de 6 caractère
          =STXT(A2;MIN(B2:K2);6)
          1
          1. Bonjour

            sans modèle de ton fichier on voie pas grand chose

            voila un exemple en vba
            Sub TestNumeric()
               For L = 1 To Range("A" & Rows.Count).End(xlUp).Row
                  T = Split(Range("A" & L).Value, " ")
                  For I = LBound(T) To UBound(T)
                     If IsNumeric(T(I)) Then
            '            Debug.Print T(I)
                        Range("A" & L).Value = T(I) * 1
                     End If
                  Next
               Next
            End Sub
            


            A+
            Maurice
            0
            1. Maurice,
              voici comment se présente mes cellules :
              CC 175800 XX
              AAA XX 175800
              175800 AA
              0
          2. Bonjour,

            Tu peux donner quelques exemples de chaines que l'on voit ou peuvent se trouver tes chiffres s'il te plait
            1
            1. CC 175800 XX
              AAA XX 175800
              175800 AA
              0
            2. Je ne connais pas visual basic...
              0
            3. re
              voir ma réponse un peu plus bas
              0
            4. @yclikMerci pour ton aide,
              J'ai réussi à utiliser tes formules mais je récupère que les 5 derniers chiffres.
              Dans tous les cas traités, il me manque le 1er chiffre c.a.d le 1 de 175800. Pourquoi ?
              0
            5. il faudrait le classeur dépersonnalisé à mettre sur cjoint pour voir
              0