Insérer un espace tous les 2 caractères dans une chaine Héxadécimale

Boripebe

XLDnaute Nouveau
Bonjour au forum et merci pour les réponses précieuses qu'il apporte :)

J'ai une cellule avec une chaine de caractères en héxadécimal et on me demande de changer l'affichage :
- en insérant un espace tous les 2 cararctères
- de mettre tous les caractères en majuscule
Voir exemple ci-dessous

J'ai navigué dans le forum sans trouver de solution. Je cherche une petite macro qui pourrait me rendre ce service.
Par avance merci pour vos propositions.
Cordialement

Boripebe

AVANT 0022647d0ded0022647d0defff8ec0004900f004885e000000022f0020100a005c00000000000000000000000005c7100030000000004bf563b

APRES 00 22 64 7D 0D ED 00 22 64 7D 0D EF FF 8E C0 00 6C 00 E3 FD 26 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 71 03 03 00 00 00 00 1B 00 01 00 1B FE 9F 69 88 91 2D 18 01 00 00 00 0D 03 00 00 00 00 78 33 3A 08 80 00 E3 65 11 13 00 00 50 69 6E 67 20
 

Paf

XLDnaute Barbatruc
Re : Insérer un espace tous les 2 caractères dans une chaine Héxadécimale

Bonjour

à adapter et tester

Code:
Sub Inserer()
 Dim i, MaVar
 For i = 1 To Len(Range("A1")) Step 2
    MaVar = MaVar & UCase(Mid(Range("E35"), i, 2)) & " "
 Next
 Range("B1") = Left(MaVar, Len(MaVar) - 1)
End Sub

A+
 

Lolote83

XLDnaute Barbatruc
Re : Insérer un espace tous les 2 caractères dans une chaine Héxadécimale

Salut,
voir le fichier joint avec une fonction personnalisée.
Si j'ai bien compris la demande
@+ Lolote83
 

Pièces jointes

  • Copie de BORIPEBE - Chaine a concertir (fonction).xlsm
    15.3 KB · Affichages: 111

NezQuiCoule

XLDnaute Occasionnel
Re : Insérer un espace tous les 2 caractères dans une chaine Héxadécimale

Bonjour Boripede, le forum,

Je propose la fonction suivante :

Code:
Public Function Hexa(Texte As String) As String

    Texte = Replace(Texte, " ", "")
    Compteur = 0
    
    For i = 1 To Len(Texte)
        Compteur = Compteur + 1
        If Compteur = 1 Then Nouveau_Texte = Nouveau_Texte & UCase(Mid(Texte, i, 1))
        If Compteur = 2 Then Nouveau_Texte = Nouveau_Texte & " " & UCase(Mid(Texte, i, 1)): Compteur = 0
    Next
    
    Hexa = Nouveau_Texte
    
End Function

Vérifiez que cela fonctionne, et bonne journée :)
 

Boripebe

XLDnaute Nouveau
Re : Insérer un espace tous les 2 caractères dans une chaine Héxadécimale

Merci pour vos propositions :
La fonction de Lolotte83 est OK, j'ai bien le résultat attendu (après avoir supprimé l'espace qui était par erreur dans mon exemple)
Pour la fonction de NezQuiCoule, j'ai une anomalie en début de chaine car j'ai un espace après le 1er caractère. J'ai mis la variable compteur à 1 au lieu de 0 et maintenant tout est OK
Merci à PAF pour sa proposition qui demande à être adaptée .... mais dans l'urgence je n'ai pas trop le temps de me pencher sur le problème.

Merci à tous pour vos réponses rapides
 

Discussions similaires

Statistiques des forums

Discussions
312 510
Messages
2 089 150
Membres
104 053
dernier inscrit
ftexfr