XL 2013 Inverser des caractères deux par deux dans une cellule

maxou

XLDnaute Nouveau
Bonjour à tous,

il y a longtemps que je ne suis pas passé sur le forum excel. Je galère sur un problème. Je cherche à inverser les chaines de caractères deux par deux sur une cellule?
Je dispose de cette chaîne A1B2C3D4, je cherche à obtenir :D4C3B2A1.
Pour l'instant j'ai créé une fonction:

Function Reverse$(ByVal S$)
Reverse = StrReverse(S)
End Function

mais le résultat n'est pas le bon. puisque j'obtient 4D3C2B1A; Comment puis je continuer a avancer?

Merci pour votre aide.

Cordialement Maxime
 

Dranreb

XLDnaute Barbatruc
Bonsoir Staple1600
Et pourquoi l'argument R y est-il passé ByRef, alors qu'à aucun moment la fonction ne le change par un Set ?
Encore qu'on se fiche de préciser ByVal alors qu'il le faudrait, soit, mais qu'en plus on précise ByRef à la place, c'est un comble …
 

Staple1600

XLDnaute Barbatruc
Bonsoir Dranreb

Parce qu’après une journée de boulot, je devrais faire une pause et prendre une collation avant de faire du VBA ;)
Merci de me remettre les idées en place.
VB:
Function myReverse(ByRef R As Range) As String
Dim Z$, i As Byte, s$
If Len(R) < 4 Or R.HasFormula Then Exit Function
Z = StrReverse(R.Text)
For i = 1 To Len(Z) Step 2
s = s & StrReverse(Mid(Z, i, 2))
Next
myReverse = s
End Function
 
Dernière édition:

dg62

XLDnaute Barbatruc
Re,
Adaptation du code de Simply en fonction
VB:
Function reverse(chaineIni As Range) As String
    Dim l As Integer
    Dim chaine As String
    chaine = ""
    For l = Len(chaineIni) - 1 To 1 Step -2
        chaine = chaine & Mid$(chaineIni, l, 2)
    Next l
 reverse = chaine
End Function
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
autre approche extraite d'un précédent travail de colorimétrie Offset
VB:
Function RevHex(target, Nbcar As Integer)
Dim idx As Integer, Cible As String
        Cible = Right(String(Nbcar, "0") & CStr(target.Value), Nbcar)
        For idx = 1 To Nbcar Step 2
                RevHex = Mid(Cible, idx, 2) & RevHex
        Next
End Function
1574164761702.png
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260