Salut Jean-Francois,

Jean-Francois Nifenecker a écrit :
> Bonjour,
> 
> je voudrais un format personnalisé pour saisir et afficher des adresses
MAC,
> comme ceci : 00-01-23-45-AB-F4 à partir de valeurs saisies comme cela :
> 00012345ABF4.
> 
> Les valeurs à afficher/saisir sont des hexadécimaux et je ne me vois
pas créer
> une colonne par octet. Il y a aussi la solution de la saisie brute et de
> l'affichage dans une colonne après transformation, mais pourquoi gâcher
?
> 
> PS : j'ai une question analogue avec des clefs d'identification
présentées
> sous la forme de suites de quatre caractères alphanumériques et
séparés par
> des tirets, p.ex : QSD4-58YH-RT7V-O9IW.
> 
> Des idées ?

La réponse sur les formats personnalisés ayant été fournie, voici un
bout de code pour remédier à cela :

NB : ne traite ici que la cellule sélectionnée

sub MacAddFormat()
'nn:nn:nn:nn:nn:nn
dim oDoc as object
dim sCell as string
dim aCell as string
oDoc = thisComponent
sCell = oDoc.CurrentSelection.String
if len(sCell) < 12 then
 msgbox("Valeur saisie incorrecte")
 else
 aCell = ""
 for i = 1 to 10 step 2
  aCell = aCell & mid(sCell,i,2) & ":"
 next i
 aCell = aCell & right(sCell,2)
 oDoc.CurrentSelection.String = aCell
end if
end sub

sub IdKeyFormat()
'aaaa:aaaa:aaaa:aaaa
dim oDoc as object
dim sCell as string
dim aCell as string
oDoc = thisComponent
sCell = oDoc.CurrentSelection.String
if len(sCell) < 16 then
 msgbox("Valeur saisie incorrecte")
 else
 aCell = ""
 for i = 1 to 12 step 4
  aCell = aCell & mid(sCell,i,4) & "-"
 next i
 aCell = aCell & right(sCell,4)
 oDoc.CurrentSelection.String = aCell
end if
end sub

Bon, reste plus qu'à adapter, ex :
- ajouter des contrôles de validité
- traiter une plage, ou une colonne
- paramétrer des formats différents

On assignera les procédures à des boutons ou des raccourcis. 

Bonnes saises ;-)

Amitiés,
Francois

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à