Inversion d'un case excel (ex : 321 >123)
Résolu
MachBin
-
MachBin -
MachBin -
Bonjour,
Je dispose d'un fichier excel qui possède plusieurs données, avec une colonne dont les données sont inversées.
Par exemple dans ma colonne j'ai les donnée 54321 en réalité je veux la donnée 12345.
pour cela j'ai réalisé les 6 fonction suivante dans 6 case excel :
=GAUCHE(DROITE($G2;NBCAR($G2)-0);1) //permet de récupérer le 5 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-1);1) //permet de récupérer le 4 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-2);1) //permet de récupérer le 3 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-3);1) //permet de récupérer le 2 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-4);1) //permet de récupérer le 1 de mon exemple
=CONCATENER(L2;K2;J2;I2;H2) // pour récupérer mon 12345
j'aurais aimé effectuer un macro de tous ça pour ne prendre qu'une case au finale!
j'ai essayé de passer par des fonction puis de concaténer le tous mais ça ne marche pas.
Voici le code :
Function chiffre4()
chiffre4 = Left(Right(RC7, Len(RC7) - 0), 1)
End Function
Function chiffre3()
chiffre3 = Left(Right(RC7, Len(RC7) - 1), 1)
End Function
Function chiffre2()
chiffre2 = Left(Right(RC7, Len(RC7) - 2), 1)
End Function
Function chiffre1()
chiffre1 = Left(Right(RC7, Len(RC7) - 3), 1)
End Function
Function chiffre0()
chiffre0 = Left(Right(RC7, Len(RC7) - 4), 1)
End Function
Sub concatenation()
Range("M4").FormulaR1C1 = "=CONCATENATE(chiffre0(),chiffre1(),chiffre2(),chiffre3(),chiffre4())"
End Sub
Pour le moment j'essai de le faire sur une case pour au finale le faire sur l'ensemble des données.
Pourriez-vous m'aider ?
Merci d'avance
MachBin
Je dispose d'un fichier excel qui possède plusieurs données, avec une colonne dont les données sont inversées.
Par exemple dans ma colonne j'ai les donnée 54321 en réalité je veux la donnée 12345.
pour cela j'ai réalisé les 6 fonction suivante dans 6 case excel :
=GAUCHE(DROITE($G2;NBCAR($G2)-0);1) //permet de récupérer le 5 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-1);1) //permet de récupérer le 4 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-2);1) //permet de récupérer le 3 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-3);1) //permet de récupérer le 2 de mon exemple
=GAUCHE(DROITE($G2;NBCAR($G2)-4);1) //permet de récupérer le 1 de mon exemple
=CONCATENER(L2;K2;J2;I2;H2) // pour récupérer mon 12345
j'aurais aimé effectuer un macro de tous ça pour ne prendre qu'une case au finale!
j'ai essayé de passer par des fonction puis de concaténer le tous mais ça ne marche pas.
Voici le code :
Function chiffre4()
chiffre4 = Left(Right(RC7, Len(RC7) - 0), 1)
End Function
Function chiffre3()
chiffre3 = Left(Right(RC7, Len(RC7) - 1), 1)
End Function
Function chiffre2()
chiffre2 = Left(Right(RC7, Len(RC7) - 2), 1)
End Function
Function chiffre1()
chiffre1 = Left(Right(RC7, Len(RC7) - 3), 1)
End Function
Function chiffre0()
chiffre0 = Left(Right(RC7, Len(RC7) - 4), 1)
End Function
Sub concatenation()
Range("M4").FormulaR1C1 = "=CONCATENATE(chiffre0(),chiffre1(),chiffre2(),chiffre3(),chiffre4())"
End Sub
Pour le moment j'essai de le faire sur une case pour au finale le faire sur l'ensemble des données.
Pourriez-vous m'aider ?
Merci d'avance
MachBin
A voir également:
- Inversion d'un case excel (ex : 321 >123)
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
Oui c'est normal ... le retour des fonctions est une chaine de caractères ... il faut convertir le retour.
Si tu prends la proposition de Zoul67
Si tu prends la proposition de Zoul67
Public Function ReverseString(Text As String) As Double ReverseString = CLng(StrReverse(Text)) End Function
Bonjour,
tout d'abord créer la fonction personnalisée "inverser" :
code :
ensuite utiliser cette fonction personnalisée en choisissant la catégorie fonctions personnalisée dans la liste déroulante des catégories lors de l'insertion de la fonction.
Il y aura peut-être des modifs selon le contexte à effectuer.
en particulier si on traite du numérique il faudra effectuer une conversion du résultat vers un numérique.
bien-sûr il faut avoir accès à l'onglet développeur.
Bon courage
cordialement
ujmo
tout d'abord créer la fonction personnalisée "inverser" :
code :
Function inverser(s1 As Variant) Dim i, l As Long Dim s2 As String s2 = "" l = Len(s1) For i = 0 To l - 1 s2 = s2 & Mid(s1, l - i, 1) Next i inverser = s2 End Function
ensuite utiliser cette fonction personnalisée en choisissant la catégorie fonctions personnalisée dans la liste déroulante des catégories lors de l'insertion de la fonction.
Il y aura peut-être des modifs selon le contexte à effectuer.
en particulier si on traite du numérique il faudra effectuer une conversion du résultat vers un numérique.
bien-sûr il faut avoir accès à l'onglet développeur.
Bon courage
cordialement
ujmo
Bonjour,
ça existe presque tout fait :
A+
ça existe presque tout fait :
Public Function ReverseString(Text As String)
ReverseString = StrReverse(Text)
End Function
A+
Bonjour,
A adapter
;0)
A adapter
Dim i As Integer Dim c As String For i = Len(Cells(1, 1)) To 1 Step -1 c = c & Mid(Cells(1, 1), i, 1) Next i Cells(1, 2) = c
;0)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
J'ai testé vos version elle marche toute à la perfection.
Cependant je ne peux pas effectuer de traitement sur ces nouvelles valeurs, est-ce normal ?
J'ai testé vos version elle marche toute à la perfection.
Cependant je ne peux pas effectuer de traitement sur ces nouvelles valeurs, est-ce normal ?
Re,
Comme l'a expliqué ujmo, il faut que ton résultat soit un nombre si tu veux faire un "traitement" (ex. une somme) alors que nos fonctions génèrent un texte.
Il suffit normalement de forcer le type "nombre" :
Comme l'a expliqué ujmo, il faut que ton résultat soit un nombre si tu veux faire un "traitement" (ex. une somme) alors que nos fonctions génèrent un texte.
Il suffit normalement de forcer le type "nombre" :
Public Function ReverseString(Text As String)
ReverseString = CLng(StrReverse(Text))
End Function