transformation de caracteres

E

erwann

Guest
Bonjour le forum, ;)

Dans une colonne de A1:A5000, les cellules contiennent des valeurs ex: XXXXXXXX001.1, comment transformer cette valeur en XXXXXXXX1_1 dans la colonne E.
En fait il faut supprimer 2 zéro et transformer le '.' en '_'

L'opération inverse m'intérresse aussi.... :eek:
Merci pour vos futures réponses [file name=trans_carct.zip size=1565]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/trans_carct.zip[/file]
 

Pièces jointes

  • trans_carct.zip
    1.5 KB · Affichages: 12

excalibur

XLDnaute Impliqué
bonjour erwann le forum on peut le faire par macro ....Option Explicit
Sub replace()
Application.ScreenUpdating = False
Dim patente As Range
[a1:a19].Copy
[e1].Select
ActiveSheet.Paste
Application.CutCopyMode = False
Dim patente As Range
[e1:e19].Select
For Each patente In Selection
patente.replace What:='0', Replacement:=''
patente.replace What:='.', Replacement:='_'
Next
End Sub'salutations
 
E

erwann

Guest
Salut a tous,

Un petit problème !! :eek: j'ai omis une petite chose.....

Si les XXXXXXXX contiennent des '0' il ne faudrait pas les supprimer.

Un code VB pour restituer la chaîne d’origine m’intéresse aussi !!!
:eek:

A+


PS: Merci andré
 

andré

XLDnaute Barbatruc
Rerere ... ,

J'en ai marre d'attendre, et je ne suis certainement pas le seul (lol) !

Formule à placer en E5, puis à copier vers le bas :

=GAUCHE(A5;8)&SUBSTITUE(SUBSTITUE(DROITE(A5;NBCAR(A5)-8);'00';'');'.';'_')

Des fois que cela pourrait inspirer les VBAtistes.

Â+
 

myDearFriend!

XLDnaute Barbatruc
Bonjour erwann, excalibur, andré,

Ci-joint une solution parmi d'autres en VBA et dans les 2 sens également :

Sub Traitement()
Dim Plage As Range, Cellule As Range
Dim T As String
      Application.ScreenUpdating = False
      Set Plage = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues)
      For Each Cellule In Plage
            If Mid(Cellule.Value, 9) Like '00#.#*' Then
                  T = Left(Cellule.Value, 8)
                  Cellule.Value = T & Replace(T & Replace(Cellule.Value, '00', '', 9), '.', '_', 9)
            End If
      Next Cellule
      Application.ScreenUpdating = True
End Sub


Sub Reconstitution()
Dim Plage As Range, Cellule As Range
Dim T As String
      Application.ScreenUpdating = False
      Set Plage = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues)
      For Each Cellule In Plage
            If Mid(Cellule.Value, 9) Like '#_#*' Then
                  T = Left(Cellule.Value, 8)
                  Cellule.Value = T & '00' & Replace(Cellule.Value, '_', '.', 9)
            End If
      Next Cellule
      Application.ScreenUpdating = True
End Sub
Cordialiement,

PS : merci au Formuliste de nous donner l'inspiration et de nous apprendre la patience...;) [file name=PourErwann.zip size=9078]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourErwann.zip[/file]
 

Pièces jointes

  • PourErwann.zip
    8.9 KB · Affichages: 18

andré

XLDnaute Barbatruc
Oh Didier, ça va oui !

La patience, ... moi je suis encore jeune (lol) donc : tout, tout de suite et gratuitement.

Heureusement qu'il y a encore des formulistes qui puissent vous faire une analyse du problème posé.

Attends, patience, ... le jour où je me mettrai au VBA vous pourrez tous prendre votre retraite.

Ceci ne m'empêche pas de te souhaiter un bon week-end.

Â+
 
E

erwann

Guest
Merci myDearFriend!, andré...........

Super ce code c tip top Mais :eek:

si XXXXXXXX090.1 et Si XXXXXXXX100.2..... :evil:
Désolé mais cela arrive dans ma Feuille :eek:
Sinon chapeau bas pour toute l'aide Déjà donnée ;)

Bonsoir a TOUS :evil:
 

andré

XLDnaute Barbatruc
Resalut,

Ne crois-tu pas que tu devrais, avant de poser une question, essayer de faire une analyse précise et complète du problème que tu poses.

Je ne suis pas fâché, simplement quelque peu énervé d'avoir passé mon temps à te trouver une solution, qui en fin de compte, n'en est pas une.

J'ai une de ces folles envies de te tirer les oreilles !

Alors, places un bout de fichier en pièce jointe, qui reprend tous les cas de figure, et on verra ce qu'on peut faire.

Â+
 

Discussions similaires

Réponses
1
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 559
Messages
2 089 604
Membres
104 225
dernier inscrit
Misterpat63