Changer l'ordre des chiffres contenus dans une cellule

Résolu/Fermé
PsyKoptiK Messages postés 27 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 7 janvier 2014 - 7 janv. 2014 à 10:49
PsyKoptiK Messages postés 27 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 7 janvier 2014 - 7 janv. 2014 à 18:07
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 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
Modifié par dlt-pan le 7/01/2014 à 12:05
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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 7/01/2014 à 14:30
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 27 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 7 janvier 2014 40
7 janv. 2014 à 15:11
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 27 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 7 janvier 2014 40
7 janv. 2014 à 18:07
Merci beaucoup ça fonctionne très bien !
0