Fractionner une coordonnée dans une cellule pour avoir N°Ligne

Résolu
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -  
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Il y a bien trop longtemps que je n'ai plus programmé et je ne retrouve pas, malgré mes recherches, comment faire pour avoir le numéro de la ligne de la coordonnée qui se trouve dans une cellule.

Exemple: en A1 il y a "B300" et je veux avoir "300"

Quelqu'un peut-il me venir en aide svp , en VBA ou non?

Merci



--
Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!

Passez en résolu si ça l'est!

4 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bon soir
    par formule et pour tenir compte du fait qu'il peut y avoir plusieurs caractères alpha avant le N°, vous pouvez essayer avec:
    =STXT(A2;TROUVE("/";SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;1;"!");2;"/");3;"/");4;"/");5;"/");6;"/");7;"/");8;"/");9;"/"));100)*1

    le *1 final n'est nécessaire que si vous ne voulez pas conserver le résultat sous format texte

    notez que cette proposition suppose que le nombre cherché ne commence par par 0

    crdlmnt
    0
  2. cs_PaTaTe Messages postés 1471 Date d'inscription   Statut Contributeur Dernière intervention   503
     
    Je vais schématiser :

    Valeur = "B300"

    Msgbox Mid(Valeur, 2, Len(Valeur))

    0
  3. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonsoir,

    également par formule matricielle à confirmer en cliquant en même temps sur les trois touches Ctrl, Shift et Entrée
    =SIERREUR(STXT(A2;EQUIV(VRAI;ESTNUM(CNUM(STXT(A2;LIGNE($1:$255);1)));0);6)*1;"")

    par Fonction personnalisée
    Function EXTNUM(Cellule As Range)
    M = Cellule.Value
    Application.Volatile
    For i = 1 To Len(M)
    If IsNumeric(Mid(M, i, 1)) Then
    M = Mid(M, i)
    Exit For
    End If
    Next
    EXTNUM = Val(M)
    End Function

    par macro, extrait la valeur de la cellule active
    Sub EXT_Val()
    M = ActiveCell.Value
    For i = 1 To Len(M)
    If IsNumeric(Mid(M, i, 1)) Then
    M = Mid(M, i)
    Exit For
    End If
    Next
    MsgBox Val(M)
    End Sub

    A+
    Mike-31

    Je suis responsable de ce que je dis, pas de ce que tu comprends...
    0
  4. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    Bonsoir et merci tout deux,

    Après une pose, ma persévérance a payée, j'ai trouvé ceci:
    --

    Coord = Range("A1").Value
    NumLigne=Range(Coord).Row


    Néanmoins, cs_PaTaTe, la valeur en A1 change donc je ne peux pas utiliser votre code.

    Merci à tous

    Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!

    Passez en résolu si ça l'est!
    0