Changer l'ordre des chiffres contenus dans une cellule

Résolu
PsyKoptiK Messages postés 29 Statut Membre -  
PsyKoptiK Messages postés 29 Statut Membre -
Bonjour,

Je souhaiterais déplacer des chiffres contenus dans une cellule.
En effet si j'ai une cellule contenant une valeur, j'aimerais pouvoir avoir une formule qui me permettrait de renverser cette valeur, soit :

0123456789 --> 9876543210

Par la même occasion je souhaiterais aussi pourvoir intercaler les chiffres en les faisant pivoter, c'est-à-dire :

123456789 --> 2947658301

A l'avance, merci beaucoup !

Cordialement,
PsyKoptiK
A voir également:

4 réponses

dlt-pan Messages postés 529 Statut Membre 67
 
Bonjour,
c'est possible en passant par une macro.
pour le premier cas j'ai compris la logique mais pas le deuxième.
de plus, veux tu en premier inverser puis intercaler ou est ce independant ?

pour le premier cas :
Sub test()
Dim x, y As String
x = CStr(ActiveCell.Value)
l = Len(x)
For i = l To 1 Step -1
y = y & Mid(x, i, 1)
Next i
ActiveCell.Value = Val(y)
End Sub
1
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour

Un peu plus simple pour la premiere et une proposition pour la seconde

Public Function renverse(c)
  renverse = Val(StrReverse(c))
End Function

Public Function renverse1(c)
Dim k As Long, cc2 As String, cc1 As String, cc As String
cc2 = ""
cc1 = ""
For k = 1 To Len(c)
  If k Mod 2 = 0 Then
    cc2 = cc2 & Mid(c, k, 1)
  Else
    cc1 = cc1 & Mid(c, k, 1)
  End If
Next k
cc1 = StrReverse(cc1)
If Len(cc2) <> Len(cc1) Then cc2 = cc2 & " "
cc = ""
For k = 1 To Len(cc1)
  cc = cc & Mid(cc2, k, 1) & Mid(cc1, k, 1)
Next k
cc = Replace(cc, " ", "")
renverse1 = Val(cc)
End Function

Cdlmnt
1
PsyKoptiK Messages postés 29 Statut Membre 40
 
Merci beaucoup pour vos réponses !

Je m'en vais tester ça et je vous fais un retex dans la foulée !
A toute !
0
PsyKoptiK Messages postés 29 Statut Membre 40
 
Merci beaucoup ça fonctionne très bien !
0