XL 2016 [RESOLU]-vba, macro pour rajouter : entre caractères

c3dr1k

XLDnaute Nouveau
Bonjour a tous, et a toutes.


J'ai une colonne F dans mon fichier Excel, avec une centaine de ligne.
dans chaque cellule il y a une suite de chiffre (12 caractères) qui se suivent, il s'agit d'adresse MAC d''imprimantes extraite d'un autre fichier exel manuellement.
je cherche donc une macro qui me mette ":" tout les deux chiffre, et ce sur chaque ligne.
exemple

avant : 9C934E98EA83
mon épouse les extrais sous ce format ci dessus, et elle rajoute manuellement les : entre les caractères...
après : 9C:93:4E:98:EA:83


d'avance merci pour vos idées et/ou soluce
 
Dernière édition:

jmfmarques

XLDnaute Accro
Bonjour
analyse, comprends et utilise ce quer tu trouveras dans cette discussion très récente :
problème et solution identiques (seuls sont à modifier le tenants et le format).
 

c3dr1k

XLDnaute Nouveau
Bonjour
analyse, comprends et utilise ce quer tu trouveras dans cette discussion très récente :
problème et solution identiques (seuls sont à modifier le tenants et le format).
OK je vais regarder.
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Si c'est un adresse MAC, c'est un nombre fixe de caractères.
S'il faut le faire en VBA, un simple Format donne le résultat.
VB:
Sub a()
    Dim s As String
    s = CStr(ActiveCell.Value)
    MsgBox Format(s, "@@:@@:@@:@@:@@:@@")
    MsgBox Format(s, "&&:&&:&&:&&:&&:&&")
End Sub
 

c3dr1k

XLDnaute Nouveau
Coucou,

J'ai une idée simple mais cela marche si le nombre de chiffres est fixe.
Est-ce le cas ?
Bonjour,

ce sont des adresses MAC d'imprimantes, donc toujours 12 caractères avec des lettres :
exemple

9C934E98EA83
mon épouse les extrais sous ce format ci dessus, et elle rajoute manuellement les : entre les caractères...
9C:93:4E:98:EA:83

et je la vois faire sur une centaine de lignes ca me désespère.
je cherche mais je ne trouve pas.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour a tous, et a toutes.


J'ai une colonne F dans mon fichier Excel, avec une centaine de ligne.
dans chaque cellule il y a une suite de chiffre (12 caractères) qui se suivent, il s'agit d'adresse MAC d''imprimantes extraite d'un autre fichier exel manuellement.
je cherche donc une macro qui me mette ":" tout les deux chiffre, et ce sur chaque ligne.

exemple :
avant : 385956295039

après :38:59:56:29:50:39

d'avance merci pour vos idées et/ou soluce

si les valeurs (nombre ou texte) comportent moins de 15 posititions (chiffres exclusivement)
le résultat sera un texte

VB:
Function ReftoMAC(target)
ReftoMAC = Application.Text(target, "00\:00\:00\:00\:00\:00")
End Function

1592385072347.png
 

Dudu2

XLDnaute Barbatruc
cette macro m'ouvre une box mais ne modifie pas le format de la cellule
Je ne crois pas qu'il soit possible de définir une format (.NumberFormat) qui fasse ça.

Il faut faire un code qui remplace les valeurs brutes par leurs équivalents formatés comme je l'ai indiqué (Format(s, "@@:mad:@:mad:@:mad:@:mad:@:mad:@") ou Format(s, "&&:&&:&&:&&:&&:&&")) soit directement dans les cellules des valeurs brutes soit dans une autre colonne comme l'a proposé Modeste geedee avec une fonction personnalisée.
 
Dernière édition:

c3dr1k

XLDnaute Nouveau
Je ne crois pas qu'il soit possible de définir une format (.NumberFormat) qui fasse ça.
Il faut faire un code qui remplace les valeurs brutes par leurs équivalents formatés comme je l'ai indiqué (Format(s, "@@:mad:@:mad:@:mad:@:mad:@:mad:@") ou Format(s, "&&:&&:&&:&&:&&:&&")) soit directement dans les cellules des valeurs brutes soit dans une autre colonne.
oui le top serais que cela remplace directement la cellule initiale qui contient la valeur brute
 

Discussions similaires

S
Réponses
0
Affichages
1 K
S

Statistiques des forums

Discussions
312 092
Messages
2 085 227
Membres
102 826
dernier inscrit
ag amestan