Extraire valeur

Bonjour,

J'ai un excel avec dans les cases d'une colonne donnee une chaîne de texte:
4,13,43,99,124,125,132,133,140,141,145,5

je voudrai par exemple extraire la valeur 4 dans une nouvelle colonne. mon problème est que les cases ne suivent pas toujours le même ordre et je ne peux donc pas utiliser la fonction stxt.

l'ideal serait une formule du type: si A1 contient "4"; B1="4"; sinon B1="0", je ne sais pas si cela existe.

merci d'avance pour votre aide

2 réponses

  1. Bonjour,

    Une solution avec une fonction personnalisée
    Function Trouve4(Cel As Range) As String
    Dim T
    Dim i As Integer
    T = Split(Cel, ",")
    Trouve4 = "0"
    For i = 0 To UBound(T)
    If T(i) = "4" Then
    Trouve4 = "4"
    Exit For
    End If
    Next i
    End Function

    A+
    0
    1. Bonjour magentolek,

      Voici une solution sans macro :

      En A1 : 4,13,43,99,124,125,132,133,140,141,145,5
      En B1 : 132 (le nombre que tu cherches)
      En C1 : =SIERREUR(CHERCHE("," & B1 & ",";"," & A1 & ",");0)
      En D1 : =SI(C1>0;B1;0)

      C1 retourne la position du nombre dans la chaîne,
      ou 0 si le nombre n'a pas été trouvé.

      Remarque : CHERCHE() retourne #VALEUR si valeur_cherchée
      est introuvable ; c'est pourquoi j'ai utilisé SIERREUR().

      D1 retourne le nombre s'il a été trouvé, 0 sinon.

      Attention : si le nombre cherché apparaît plus d'une fois
      dans la chaîne, seul le premier sera détecté. J'aurai bien
      une solution pour cela, mais c'est inutile si le nombre
      que tu cherches dans la chaîne n'y apparaît qu'une fois.

      Si ton problème est réglé, merci d'aller en haut de page
      pour cliquer sur « Marquer comme résolu ».

      Cordialement.  😊
       
      0
      1. Bonjour albkan,

        Je te propose
        =SIERREUR(CHERCHE("," & B1& ",";"," & A1);0)
        pour éviter le problème posé par les numéros 40, 41 ,etc...

        A+
        0
      2. @GyrusBonjour Gyrus,

        C'est exact, mais dans ce cas, il faut aussi ajouter une "," à la fin de A1
        pour pouvoir détecter le dernier nombre ; de la même façon, j'avais
        ajouté une "," devant A1 pour pouvoir détecter le premier nombre.

        Merci pour ton intervention et pour ta correction ; je viens de modifier
        mon message #2 en conséquence : ligne En C1 : =...

        Cordialement.  😊
         
        0