OVH Cloud OVH Cloud

Chercher 5 premiers chiffre et afficher 3 derniers?

4 réponses
Avatar
MK
Bonjour,
J'aimerais avoir une macro qui chercher les 5 premiers chiffre et affiche
les 3 dernier?
Voilà ce que j'ai de fait jusqu'à maintenant.

Sub chercherFinal()
'On Error Resume Next
No = InputBox(Chr(10) & "Rechercher :" & Chr(10) & _
"(minuscules ou majuscules...)", "Lancer une recherche...")
With Worksheets(1).Range("a1:a500")
Set c = .Find(No, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Range("D" & c.Row).FormulaR1C1 = "=RIGHT(RC[-3],3)"
Min = FormatNumber(Range("D" & c.Row).Value, 0)
Range("D" & c.Row).Value = ""
MsgBox c.Row & " " & Min
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub

Si la valeur n'est pas un nombre ça chie et si mes 3 derniers chiffres sont
099 il affiche seulement 99.

Merci de votre aide

MK

4 réponses

Avatar
AV
Si je m'en tiens à ta question (Chercher 5 premiers chiffre et afficher 3
derniers) et avec une plage nommée "chiffres" :

Sub zzz()
les5 = InputBox("5 chiffres", "Lancer une recherche...")
'ici mettre les tests concernant la saisie
MsgBox Evaluate("if(isna(match(""" & les5 & """,left(chiffres,5),0)),""Pas
trouvé !"",text(right(index( chiffres,match(""" & les5 &
""",left(chiffres,5),0)),3),""000""))")
End Sub

Attention au retour à la ligne et aux guillemets....
L'instruction Msgbox....))") est sur une seule ligne

Exemple là :
http://cjoint.com/?cnhRYMiqUK

AV
Avatar
MK
Merci ça fonction très bien, mais il faut afficher tous les 3 derniers
chiffres car il désigne une option.

Exemple:
60100532
60100524
52368100
Si je cherche 60100 il doit envoyer option1 = 532 et option2 = 524, etc tant
qu'il va y avoir un match des 5 premiers chiffres.


Si je m'en tiens à ta question (Chercher 5 premiers chiffre et afficher 3
derniers) et avec une plage nommée "chiffres" :

Sub zzz()
les5 = InputBox("5 chiffres", "Lancer une recherche...")
'ici mettre les tests concernant la saisie
MsgBox Evaluate("if(isna(match(""" & les5 & """,left(chiffres,5),0)),""Pas
trouvé !"",text(right(index( chiffres,match(""" & les5 &
""",left(chiffres,5),0)),3),""000""))")
End Sub

Attention au retour à la ligne et aux guillemets....
L'instruction Msgbox....))") est sur une seule ligne

Exemple là :
http://cjoint.com/?cnhRYMiqUK

AV





Avatar
AV
Approche différente :
http://cjoint.com/?coieC1cHQd

AV
Avatar
MK
Merci beaucoup de ta réponse et de ton aide


Approche différente :
http://cjoint.com/?coieC1cHQd

AV