OVH Cloud OVH Cloud

Format alpha numérique dans un TextBox

4 réponses
Avatar
Régis
Bonjour,

Je suis en train de terminer une application de suivi de=20
colis express.
Je dois envoyer un num=E9ro de colis dans une cellule X lui=20
applicant un format particlier et un lien hypertext qui=20
renvoit sur le site de tracking du coursier.
J'ai diff=E9rents coursiers qui utilisent tous un format de=20
num=E9ro de colis diff=E9rent. Le principal coursier utilise=20
le format suivant 0000 0000 0000 C'est simple et j'ai=20
trait=E9 le pb de la mani=E8re suivante :

Dans un module, je pr=E9pare le format de la cellule
Sub MachinFormat(ByVal tracklink As Range)
ActiveSheet.Hyperlinks.Add Anchor:=3Dtracklink,=20
Address:=3D _
"http://www.machin.com/"
tracklink.NumberFormat =3D "????#"" ""???#"" ""????"
tracklink.Font.Size =3D 8
End Sub

Dans le bouton de validation, j'appel la macro en fonction=20
de contions selon la m=E9thode suivante :

Const MachinTNMax =3D 12

Private Sub CommandButton1_Click()
Application.ScreenUpdating =3D False
If OptionButton1 =3D True Then
If IsNumeric(TextBox1) Then
ActiveCell.Offset(0, 2).Value =3D Calendar1
ActiveCell.Offset(0, 3).Value =3D CDbl(TextBox1)
If OptionButton5 =3D True Then
If Len(TextBox1) <> MachinTNMax Then
MsgBox "Tracking number non conforme" & Chr
(13) & "V=E9rifiez le nombre de carat=E8res"
Exit Sub
Else
Call MachinFormat(ActiveCell.Offset(0, 3))
End If
End If
End If
ElseIf OptionButton2 =3D True Then
Etc...

L=E0 o=F9 le probl=E8me se corse c'est qu'un autre coursier=20
utilise le format de num=E9ro de colis suivant :
EE 000 000 000 FR.
Pour ce qui est du sufixe FR, pas de probl=E8me pour le=20
traiter. En revanche, comme le num=E9ro commence par 2=20
alpha, Excel lui applique automatiquement un format texte=20
qui de n=E9serve pas les espaces n=E9cessaires =E0 une lecture=20
simplifi=E9e du num=E9ro de colis.

Quelqu'un peut-il me donner la solution, je tourne en rond=20
depuis 2 heures sur le probl=E8me.

D'avance un grand merci =E0 qui pourra m'aider.

Bien cordialement,

4 réponses

Avatar
Claude Mani
Bonjour,

Je ne suis pas sûr d'avoir tout compris.

La "lecture simplifiée du numéro de colis", est-ce celle qui se fait par le
biais de : Private Sub CommandButton1_Click() ?

Si oui, rajoutez dans le code : if not isnumeric (ou else tout simplement),
puis traitez depuis là ces codes particuliers.

Dans l'attente de plus amples explications.

Meilleures salutations.

Claude Mani

"Régis" a écrit dans le message de news:
071c01c33fb0$6c797900$
Bonjour,

Je suis en train de terminer une application de suivi de
colis express.
Je dois envoyer un numéro de colis dans une cellule X lui
applicant un format particlier et un lien hypertext qui
renvoit sur le site de tracking du coursier.
J'ai différents coursiers qui utilisent tous un format de
numéro de colis différent. Le principal coursier utilise
le format suivant 0000 0000 0000 C'est simple et j'ai
traité le pb de la manière suivante :

Dans un module, je prépare le format de la cellule
Sub MachinFormat(ByVal tracklink As Range)
ActiveSheet.Hyperlinks.Add Anchor:=tracklink,
Address:= _
"http://www.machin.com/"
tracklink.NumberFormat = "????#"" ""???#"" ""????"
tracklink.Font.Size = 8
End Sub

Dans le bouton de validation, j'appel la macro en fonction
de contions selon la méthode suivante :

Const MachinTNMax = 12

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If OptionButton1 = True Then
If IsNumeric(TextBox1) Then
ActiveCell.Offset(0, 2).Value = Calendar1
ActiveCell.Offset(0, 3).Value = CDbl(TextBox1)
If OptionButton5 = True Then
If Len(TextBox1) <> MachinTNMax Then
MsgBox "Tracking number non conforme" & Chr
(13) & "Vérifiez le nombre de caratères"
Exit Sub
Else
Call MachinFormat(ActiveCell.Offset(0, 3))
End If
End If
End If
ElseIf OptionButton2 = True Then
Etc...

Là où le problème se corse c'est qu'un autre coursier
utilise le format de numéro de colis suivant :
EE 000 000 000 FR.
Pour ce qui est du sufixe FR, pas de problème pour le
traiter. En revanche, comme le numéro commence par 2
alpha, Excel lui applique automatiquement un format texte
qui de néserve pas les espaces nécessaires à une lecture
simplifiée du numéro de colis.

Quelqu'un peut-il me donner la solution, je tourne en rond
depuis 2 heures sur le problème.

D'avance un grand merci à qui pourra m'aider.

Bien cordialement,
Avatar
Régis
Bonjour Claude,

J'ai essayé mais malheureusement ça ne foncitonne pas. Le
pb tient à la multiplicité des options. A l'origine, j'ai
trois options (nature de l'envoi) qui elles mêmes ouvrent
3 options (principaux) coursiers. Dans e cas du premier
coursier, le format de son tracking number est full
numérique donc "aisé" à traiter. Le second coursier lui a
un format alpha num. Don, l'information est comprise par
la cellule comme Alphabétique puisque la donnée commence
par 2 alphas, variable bien entendu.

J'epsère être clair, mais n'en suis pas trop sûr.

Merci toutefois de t'être interresé à la question,
j'attends de tes nouvelles si toutefois tu peux me
dépanner.

MErci
-----Message d'origine-----
Bonjour,

Je ne suis pas sûr d'avoir tout compris.

La "lecture simplifiée du numéro de colis", est-ce celle
qui se fait par le

biais de : Private Sub CommandButton1_Click() ?

Si oui, rajoutez dans le code : if not isnumeric (ou else
tout simplement),

puis traitez depuis là ces codes particuliers.

Dans l'attente de plus amples explications.

Meilleures salutations.

Claude Mani

"Régis" a écrit dans le message
de news:

071c01c33fb0$6c797900$
Bonjour,

Je suis en train de terminer une application de suivi de
colis express.
Je dois envoyer un numéro de colis dans une cellule X lui
applicant un format particlier et un lien hypertext qui
renvoit sur le site de tracking du coursier.
J'ai différents coursiers qui utilisent tous un format de
numéro de colis différent. Le principal coursier utilise
le format suivant 0000 0000 0000 C'est simple et j'ai
traité le pb de la manière suivante :

Dans un module, je prépare le format de la cellule
Sub MachinFormat(ByVal tracklink As Range)
ActiveSheet.Hyperlinks.Add Anchor:=tracklink,
Address:= _
"http://www.machin.com/"
tracklink.NumberFormat = "????#"" ""???#"" ""????"
tracklink.Font.Size = 8
End Sub

Dans le bouton de validation, j'appel la macro en fonction
de contions selon la méthode suivante :

Const MachinTNMax = 12

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If OptionButton1 = True Then
If IsNumeric(TextBox1) Then
ActiveCell.Offset(0, 2).Value = Calendar1
ActiveCell.Offset(0, 3).Value = CDbl(TextBox1)
If OptionButton5 = True Then
If Len(TextBox1) <> MachinTNMax Then
MsgBox "Tracking number non conforme" &
Chr

(13) & "Vérifiez le nombre de caratères"
Exit Sub
Else
Call MachinFormat(ActiveCell.Offset(0, 3))
End If
End If
End If
ElseIf OptionButton2 = True Then
Etc...

Là où le problème se corse c'est qu'un autre coursier
utilise le format de numéro de colis suivant :
EE 000 000 000 FR.
Pour ce qui est du sufixe FR, pas de problème pour le
traiter. En revanche, comme le numéro commence par 2
alpha, Excel lui applique automatiquement un format texte
qui de néserve pas les espaces nécessaires à une lecture
simplifiée du numéro de colis.

Quelqu'un peut-il me donner la solution, je tourne en rond
depuis 2 heures sur le problème.

D'avance un grand merci à qui pourra m'aider.

Bien cordialement,


.



Avatar
Claude Mani
Bonjour,

Je suis toujours dans le doute.

Quelques réflexions :

avec le format de cellule suivant :

"EE" ##0 ##0 ##0 "FR"

le code est correctement formaté, mais c'est toujours une chaîne.

Avec le code suivant, on supprime les textes de début et de fin :

Option Explicit

Sub test()
Dim sCode As String
Dim taille As Long

sCode = "EE 000 000 000 FR"
taille = Len(sCode)

If Not IsNumeric(sCode) Then
sCode = Right$(sCode, taille - 3)
Debug.Print sCode
taille = Len(sCode)
sCode = Left$(sCode, taille - 3)
Debug.Print sCode
End If
End Sub

Mais, c'est toujours une chaîne...

Hélas ! Je sèche.

Bonne journée quand même.

Claude Mani.

"Régis" a écrit dans le message de news:
300801c33fbf$62e05bc0$
Bonjour Claude,

J'ai essayé mais malheureusement ça ne foncitonne pas. Le
pb tient à la multiplicité des options. A l'origine, j'ai
trois options (nature de l'envoi) qui elles mêmes ouvrent
3 options (principaux) coursiers. Dans e cas du premier
coursier, le format de son tracking number est full
numérique donc "aisé" à traiter. Le second coursier lui a
un format alpha num. Don, l'information est comprise par
la cellule comme Alphabétique puisque la donnée commence
par 2 alphas, variable bien entendu.

J'epsère être clair, mais n'en suis pas trop sûr.

Merci toutefois de t'être interresé à la question,
j'attends de tes nouvelles si toutefois tu peux me
dépanner.

MErci
-----Message d'origine-----
Bonjour,

Je ne suis pas sûr d'avoir tout compris.

La "lecture simplifiée du numéro de colis", est-ce celle
qui se fait par le

biais de : Private Sub CommandButton1_Click() ?

Si oui, rajoutez dans le code : if not isnumeric (ou else
tout simplement),

puis traitez depuis là ces codes particuliers.

Dans l'attente de plus amples explications.

Meilleures salutations.

Claude Mani

"Régis" a écrit dans le message
de news:

071c01c33fb0$6c797900$
Bonjour,

Je suis en train de terminer une application de suivi de
colis express.
Je dois envoyer un numéro de colis dans une cellule X lui
applicant un format particlier et un lien hypertext qui
renvoit sur le site de tracking du coursier.
J'ai différents coursiers qui utilisent tous un format de
numéro de colis différent. Le principal coursier utilise
le format suivant 0000 0000 0000 C'est simple et j'ai
traité le pb de la manière suivante :

Dans un module, je prépare le format de la cellule
Sub MachinFormat(ByVal tracklink As Range)
ActiveSheet.Hyperlinks.Add Anchor:=tracklink,
Address:= _
"http://www.machin.com/"
tracklink.NumberFormat = "????#"" ""???#"" ""????"
tracklink.Font.Size = 8
End Sub

Dans le bouton de validation, j'appel la macro en fonction
de contions selon la méthode suivante :

Const MachinTNMax = 12

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If OptionButton1 = True Then
If IsNumeric(TextBox1) Then
ActiveCell.Offset(0, 2).Value = Calendar1
ActiveCell.Offset(0, 3).Value = CDbl(TextBox1)
If OptionButton5 = True Then
If Len(TextBox1) <> MachinTNMax Then
MsgBox "Tracking number non conforme" &
Chr

(13) & "Vérifiez le nombre de caratères"
Exit Sub
Else
Call MachinFormat(ActiveCell.Offset(0, 3))
End If
End If
End If
ElseIf OptionButton2 = True Then
Etc...

Là où le problème se corse c'est qu'un autre coursier
utilise le format de numéro de colis suivant :
EE 000 000 000 FR.
Pour ce qui est du sufixe FR, pas de problème pour le
traiter. En revanche, comme le numéro commence par 2
alpha, Excel lui applique automatiquement un format texte
qui de néserve pas les espaces nécessaires à une lecture
simplifiée du numéro de colis.

Quelqu'un peut-il me donner la solution, je tourne en rond
depuis 2 heures sur le problème.

D'avance un grand merci à qui pourra m'aider.

Bien cordialement,


.



Avatar
Régis
Merci d'avoir essayé, c'est tjs agréable un coup de main.
Je continue mes explorations "plantatoires", je finirai
par trouver la lumière

Encore merci
-----Message d'origine-----
Bonjour,

Je suis toujours dans le doute.

Quelques réflexions :

avec le format de cellule suivant :

"EE" ##0 ##0 ##0 "FR"

le code est correctement formaté, mais c'est toujours une
chaîne.


Avec le code suivant, on supprime les textes de début et
de fin :


Option Explicit

Sub test()
Dim sCode As String
Dim taille As Long

sCode = "EE 000 000 000 FR"
taille = Len(sCode)

If Not IsNumeric(sCode) Then
sCode = Right$(sCode, taille - 3)
Debug.Print sCode
taille = Len(sCode)
sCode = Left$(sCode, taille - 3)
Debug.Print sCode
End If
End Sub

Mais, c'est toujours une chaîne...

Hélas ! Je sèche.

Bonne journée quand même.

Claude Mani.

"Régis" a écrit dans le message
de news:

300801c33fbf$62e05bc0$
Bonjour Claude,

J'ai essayé mais malheureusement ça ne foncitonne pas. Le
pb tient à la multiplicité des options. A l'origine, j'ai
trois options (nature de l'envoi) qui elles mêmes ouvrent
3 options (principaux) coursiers. Dans e cas du premier
coursier, le format de son tracking number est full
numérique donc "aisé" à traiter. Le second coursier lui a
un format alpha num. Don, l'information est comprise par
la cellule comme Alphabétique puisque la donnée commence
par 2 alphas, variable bien entendu.

J'epsère être clair, mais n'en suis pas trop sûr.

Merci toutefois de t'être interresé à la question,
j'attends de tes nouvelles si toutefois tu peux me
dépanner.

MErci
-----Message d'origine-----
Bonjour,

Je ne suis pas sûr d'avoir tout compris.

La "lecture simplifiée du numéro de colis", est-ce celle
qui se fait par le

biais de : Private Sub CommandButton1_Click() ?

Si oui, rajoutez dans le code : if not isnumeric (ou else
tout simplement),

puis traitez depuis là ces codes particuliers.

Dans l'attente de plus amples explications.

Meilleures salutations.

Claude Mani

"Régis" a écrit dans le message
de news:

071c01c33fb0$6c797900$
Bonjour,

Je suis en train de terminer une application de suivi de
colis express.
Je dois envoyer un numéro de colis dans une cellule X lui
applicant un format particlier et un lien hypertext qui
renvoit sur le site de tracking du coursier.
J'ai différents coursiers qui utilisent tous un format de
numéro de colis différent. Le principal coursier utilise
le format suivant 0000 0000 0000 C'est simple et j'ai
traité le pb de la manière suivante :

Dans un module, je prépare le format de la cellule
Sub MachinFormat(ByVal tracklink As Range)
ActiveSheet.Hyperlinks.Add Anchor:=tracklink,
Address:= _
"http://www.machin.com/"
tracklink.NumberFormat = "????#"" ""???#"" ""????"
tracklink.Font.Size = 8
End Sub

Dans le bouton de validation, j'appel la macro en
fonction


de contions selon la méthode suivante :

Const MachinTNMax = 12

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If OptionButton1 = True Then
If IsNumeric(TextBox1) Then
ActiveCell.Offset(0, 2).Value = Calendar1
ActiveCell.Offset(0, 3).Value = CDbl(TextBox1)
If OptionButton5 = True Then
If Len(TextBox1) <> MachinTNMax Then
MsgBox "Tracking number non conforme" &
Chr

(13) & "Vérifiez le nombre de caratères"
Exit Sub
Else
Call MachinFormat(ActiveCell.Offset(0,
3))


End If
End If
End If
ElseIf OptionButton2 = True Then
Etc...

Là où le problème se corse c'est qu'un autre coursier
utilise le format de numéro de colis suivant :
EE 000 000 000 FR.
Pour ce qui est du sufixe FR, pas de problème pour le
traiter. En revanche, comme le numéro commence par 2
alpha, Excel lui applique automatiquement un format texte
qui de néserve pas les espaces nécessaires à une lecture
simplifiée du numéro de colis.

Quelqu'un peut-il me donner la solution, je tourne en
rond


depuis 2 heures sur le problème.

D'avance un grand merci à qui pourra m'aider.

Bien cordialement,


.




.