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

Résolu
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   -  
mod77 Messages postés 1284 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


A voir également:

4 réponses

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
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 2126 Date d'inscription   Statut Contributeur Dernière intervention   496
 
Je vais schématiser :

Valeur = "B300"

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

0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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 1284 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