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

Résolu/Fermé
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - 23 mai 2017 à 19:33
mod77 Messages postés 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 - 23 mai 2017 à 20:31
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
23 mai 2017 à 19:56
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 mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 493
23 mai 2017 à 20:03
Je vais schématiser :

Valeur = "B300"

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

0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié le 23 mai 2017 à 20:27
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 1273 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 14 janvier 2024 53
23 mai 2017 à 20:31
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