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

Résolu/Fermé
Signaler
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
-
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
-
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


4 réponses

Messages postés
26307
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 décembre 2021
6 131
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
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
480
Je vais schématiser :

Valeur = "B300"

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

Messages postés
17698
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
2 décembre 2021
4 855
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...
Messages postés
1277
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
52
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!