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

Résolu
mod77 Messages postés 1320 Statut Membre -  
mod77 Messages postés 1320 Statut Membre -
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


A voir également:

4 réponses

Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
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
cs_PaTaTe Messages postés 2230 Statut Contributeur 497
 
Je vais schématiser :

Valeur = "B300"

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

0
Mike-31 Messages postés 19571 Statut Contributeur 5 136
 
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
mod77 Messages postés 1320 Statut Membre 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