Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion c3dr1k
  • Date de début Date de début
  • Mots-clés Mots-clés
    vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

c3dr1k

Guest
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 modification par un modérateur:
J'ai pas codé le 300, en cherchant la fin de la liste des MAC@.

VB:
Sub FormatMACAddress()
    Dim WS As Worksheet
    Dim i As Long
    Dim NbLignes As Long
    Dim S As String
    '-----------------------
    Const NoColonneMACAddress = 27
    Const LongueurMACAddress = 12
    Const NbLignesTitres = 3
    '-----------------------
   
    'Initialisations
    Set WS = ActiveSheet  'Adapter si nécessaire
    If Not WS.AutoFilter Is Nothing Then WS.AutoFilter.ShowAllData
    NbLignes = WS.Cells(Rows.Count, NoColonneMACAddress).End(xlUp).Row
   
    'Parcours des MAC@
    For i = NbLignesTitres + 1 To NbLignes
        S = UCase(Trim(CStr(WS.Cells(i, NoColonneMACAddress).Value)))
        If Len(S) = LongueurMACAddress Then
            WS.Cells(i, NoColonneMACAddress).Value = Format(S, "@@:@@:@@:@@:@@:@@")
        End If
    Next i
End Sub
 
Bonsour®
oui le top serais que cela remplace directement la cellule initiale qui contient la valeur brute

dans ce cas DuDu2 a indiqué la voie :
selectionnez la plage ou les cellules concernées et activez la macro ci-dessous

VB:
Sub ReftoMAC()
Dim cellule As Range
For Each cellule In Selection
If InStr(cellule, ":") = 0 Then cellule = UCase(Format(CStr(cellule), "&&:&&:&&:&&:&&:&&"))
Next
End Sub
 


merci, et merci a tous de m'avoir consacrer du temps.

problème résolu,

merci pour ma femme 😀
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…