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:

Dudu2

XLDnaute Barbatruc
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
 

Modeste geedee

XLDnaute Barbatruc
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
 

c3dr1k

XLDnaute Nouveau
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


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

problème résolu,

merci pour ma femme :D
 

Discussions similaires

S
Réponses
0
Affichages
1 K
S

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat