Format de cellule personnalisé

6 réponses
Avatar
Vstrom
Bonjour,

J'utilise Office 2007 très souvent pour saisir des clés de licence Windows,
composées de 5 fois 5 caractères séparés par un tiret.

Je souhaiterais automatiser la saisie et avoir la même chose que dans
Winsows XP ou 7, à savoir dès que j'ai saisi 5 caractères, un tiret est
affiché automatiquement et ce, 4 fois, le tiret derrière le 25ème caractère
est inutile.

Merci pour vos réponses.

6 réponses

Avatar
DanielCo
Bonjour,
Mets cette macro dans le module de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Txt As String
If Len(Target.Value) = 25 Then
For i = 1 To 5
Txt = Mid(Target.Value, i, 5) & "-" & Txt
Next i
Application.EnableEvents = False
Target.Value = Left(Txt, Len(Txt) - 1)
Application.EnableEvents = False
End If
End Sub
Cordialement.
Daniel


Bonjour,

J'utilise Office 2007 très souvent pour saisir des clés de licence Windows,
composées de 5 fois 5 caractères séparés par un tiret.

Je souhaiterais automatiser la saisie et avoir la même chose que dans Winsows
XP ou 7, à savoir dès que j'ai saisi 5 caractères, un tiret est affiché
automatiquement et ce, 4 fois, le tiret derrière le 25ème caractère est
inutile.

Merci pour vos réponses.
Avatar
Jacky
Hello Daniel

Application.EnableEvents = False <= > Target.Value = Left(Txt, Len(Txt) - 1)
Application.EnableEvents = False <====>True



Ah! que ce "copier/coller" peut-être collant des fois. :-)
;o)))

--
Salutations
JJ


"DanielCo" a écrit dans le message de news: l8jrgr$ra8$
Bonjour,
Mets cette macro dans le module de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Txt As String
If Len(Target.Value) = 25 Then
For i = 1 To 5
Txt = Mid(Target.Value, i, 5) & "-" & Txt
Next i
Application.EnableEvents = False
Target.Value = Left(Txt, Len(Txt) - 1)
Application.EnableEvents = False
End If
End Sub
Cordialement.
Daniel


Bonjour,

J'utilise Office 2007 très souvent pour saisir des clés de licence Windows, composées de 5 fois 5
caractères séparés par un tiret.

Je souhaiterais automatiser la saisie et avoir la même chose que dans Winsows XP ou 7, à savoir dès que
j'ai saisi 5 caractères, un tiret est affiché automatiquement et ce, 4 fois, le tiret derrière le 25ème
caractère est inutile.

Merci pour vos réponses.
Avatar
DanielCo
Hello Daniel

Application.EnableEvents = False <= >> Target.Value = Left(Txt, Len(Txt) - 1)
Application.EnableEvents = False <====>True



Ah! que ce "copier/coller" peut-être collant des fois. :-)
;o)))

--
Salutations
JJ



Eh oui... C'est dimanche...
Daniel
Avatar
Vstrom
Bonsoir Daniel,

Merci pour la formule, mais je ne sais ni où, ni comment lamettre dans la
feuille de calcul.
Merci encore.

"DanielCo" a écrit dans le message de news:
l8jrgr$ra8$
Bonjour,
Mets cette macro dans le module de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Txt As String
If Len(Target.Value) = 25 Then
For i = 1 To 5
Txt = Mid(Target.Value, i, 5) & "-" & Txt
Next i
Application.EnableEvents = False
Target.Value = Left(Txt, Len(Txt) - 1)
Application.EnableEvents = False
End If
End Sub
Cordialement.
Daniel


Bonjour,

J'utilise Office 2007 très souvent pour saisir des clés de licence
Windows, composées de 5 fois 5 caractères séparés par un tiret.

Je souhaiterais automatiser la saisie et avoir la même chose que dans
Winsows XP ou 7, à savoir dès que j'ai saisi 5 caractères, un tiret est
affiché automatiquement et ce, 4 fois, le tiret derrière le 25ème
caractère est inutile.

Merci pour vos réponses.
Avatar
MichD
Bonjour,

Tu fais un clic droit sur l'onglet de la feuille où l'action se déroule,
et dans le menu contextuel, tu appelles la commande "Visualiser le code"
et dans page blanche de droite, tu copies le code que Daniel t'a proposé.
Si tu as un pépin, essaie aussi celui de Jacky après avoir supprimé la
première version du code.
Avatar
Jacky
Bonjour,

Autre exemple avec une boite de saisie
Ici
http://cjoint.com/?CLqn5Y7O5EV
--
Salutations
JJ


"Vstrom" a écrit dans le message de news: 52ae190b$0$2126$
Bonsoir Daniel,

Merci pour la formule, mais je ne sais ni où, ni comment lamettre dans la feuille de calcul.
Merci encore.

"DanielCo" a écrit dans le message de news: l8jrgr$ra8$
Bonjour,
Mets cette macro dans le module de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Txt As String
If Len(Target.Value) = 25 Then
For i = 1 To 5
Txt = Mid(Target.Value, i, 5) & "-" & Txt
Next i
Application.EnableEvents = False
Target.Value = Left(Txt, Len(Txt) - 1)
Application.EnableEvents = False
End If
End Sub
Cordialement.
Daniel


Bonjour,

J'utilise Office 2007 très souvent pour saisir des clés de licence Windows, composées de 5 fois 5
caractères séparés par un tiret.

Je souhaiterais automatiser la saisie et avoir la même chose que dans Winsows XP ou 7, à savoir dès que
j'ai saisi 5 caractères, un tiret est affiché automatiquement et ce, 4 fois, le tiret derrière le 25ème
caractère est inutile.

Merci pour vos réponses.