Excel 11, Format de cellule

cvldudu

Membre actif
30 Septembre 2010
117
3
Versailles, FRANCE
Bonsoir à toutes et à tous,
je suis en train de référencer les différentes adresses MAC des périphériques qui seront autorisés à se connecter à mon réseau (Blackberries, iPads, iPhones, iTouchs, macbooks, pcs & etc.).
Les adresses MAC sont composées de chiffres Hexadécimaux {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

je souhaite donc entrer les caractères collés (ex. 0E33BBA7) et qu'Excel m'affiche dans la cellule une paire de deux caractères puis un : puis à nouveau une paire de caractère jusqu'à la fin de l'adresse. (dans notre exemple 0E:33:BB:A7)

je tiens à préciser que n'importe quel caractère peut etre soit un chiffre soit une lettre.

Cordialement
 
Les formats spéciaux ne concernant a priori que les nombres, on ne peut pas les utiliser dans le cas présent. A priori, je ne vois pas de solution autrement qu'avec une macro événementielle qui modifie la chaîne une fois entrée.

En décidant, par exemple, que tu saisiras tes adresses dans la plage de cellules B2:B50, tu pourrais coller dans la page de code correspondant à la feuille concernée la macro suivante :

Bloc de code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("B2:B50"))  'à personnaliser
If isect Is Nothing Then
    Exit Sub
Else
    MonContenu = Target.Formula
    MonContenu = Left(MonContenu, 2) & ":" & Mid(MonContenu, 3, 2) & ":" _
        & Mid(MonContenu, 5, 2) & ":" & Mid(MonContenu, 7, 2) & ":" & _
        Mid(MonContenu, 9, 2) & ":" & Right(MonContenu, 2)
 Target.Formula = MonContenu
End If
End Sub
Tes saisies de séquences seront automatiquement converties dès que tu valides. C'est évidemment à adapter, compléter, corriger, en fonction de tes besoins exacts.
 
Dernière édition:
euh je ne sais pas comment adapter.
si je t'envoie le fichier de base avec les colonnes sans les adresses qui vont dedans tu peux me le transformer ?
je viens de créer une page au classeur pour nos points wifi (box+IDs) qui sont toutes en WEP et/ou WPA
 
je ne sais pas comment adapter.
??? À la place de "B2:B50" tu indiques la plage dans laquelle tu veux mettre les adresses IP. Si tu prévois de les taper dans les cellules A2:A250 tu mets cette plage dans la deuxième ligne, si tu prévois de taper tes adresses dans en A2:F5, tu mets cette plage là. Quelles sont les difficultés que tu rencontres ? Que fais-tu exactement ?

De toute façon, c'est pas pour dire mais depuis le temps tu aurais eu meilleur compte à saisir des "deux points" à la main. :)
 
ok, dans la rubrique "MonContenu" qui est à différentes lignes, je mets quoi quand j'entre la macro?
MonContenu est une variable. Tu n'as pas besoin de t'en occuper, elle se remplit toute seule lorsque la macro s'exécute. La seule chose que tu dois modifier, c'est la plage de cellules à surveiller.

Telle que je l'ai collée ci-dessus, la macro s'exécute uniquement lorsqu'il y a un changement (ex : une saisie de valeur) dans une des cellules de la plage B2:B50. Si, dans ta feuille, tu prévois de saisir les données dans d'autres cellules, tu dois modifier cette plage en conséquence. Par exemple, tu comptes saisir tes caractères à partir de la quatrième ligne dans la troisième colonne, eh bien dans la macro tu remplaces "B2:B50" par "C4:C99"...

Il faut surtout que tu colles la macro dans la feuille de code qui correspond à ta feuille. Pour cela, il faut aller dans "Outils" > "Macro" > "Visual Basic Editor", faire un double-clic sur l'icône correspondant à ta feuille dans la partie gauche (l'Explorateur de Projets) et là tu colles la macro dans la feuille de code. C'est tout ce qu'il y a à faire.

Ceci dit, si tu n'es pas à l'aise avec les macros, n'oublie pas que tu peux obtenir le même résultat directement dans ta feuille, en collant dans une autre cellule la formule suivante :

=GAUCHE(A2;2)&":"&STXT(A2;3;2)&":"&STXT(A2;5;2)&":"&STXT(A2;7;2)&":"&STXT(A2;9;2)&":"&DROITE(A2;2)

Comme tu peux le voir, ce sont les équivalents "feuille de calcul" des instructions de la macro décrite plus haut. C'est juste que du coup le résultat s'affiche dans une autre cellule et pas automatiquement "dans la même cellule".