probleme macro rechercher remplacer

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Laurentsavoie

XLDnaute Nouveau
Bonjour !
Je fais une récupération d'un fichier texte grace à la macro ci-dessous. Le fichier texte est créé grace à un transfert de données à partir d'un serveur ISéries nouveau nom pour les as400 de IBM.
mon fichier texte contient des chiffres qui ont un . pour séparer les milliers et une , pour les décimales.
Si je lance une recherche remplacement à la main pour remplacer les . par rien ça fonctionne bien et mes virgules restent bien en place. Mais si j'intègre cette fonction dans ma macro les virgules sont également remplacées par rein.
comment résoudre ce problème ?

Ma macro :
😕
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\temp\Transfertas400.", _
Destination:=Range("$A$1"))
.Name = "Transfertas400."
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(2, 6, 3, 31, 1, 7, 2, 9, 47, 7, 79)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=-9
Cells.Select
ActiveWorkbook.Worksheets("Feuil4").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil4").Sort.SortFields.Add Key:=Range("B1:B1215" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil4").Sort
.SetRange Range("A1:K1215")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=-3
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("D😀").Select
Selection.ClearContents
Selection.Delete Shift:=xlToLeft
Columns("E:E").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll Down:=63
Columns("F:F").Select
Range("F64").Activate
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll Down:=-72
Range("A1").Select
Cells.Replace What:=".", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
ActiveWindow.SmallScroll Down:=-15
Range("A1").Select
End Sub
 
Re : probleme macro rechercher remplacer

Bonsoir,

C'est un phénomène curieux que vous rapportez-là, et j'ai pu le vérifier. VBA ne fonctionne pas comme en manuel sur les nombres, c'est dû au fait qu'il utilise toujours le point comme séparateur décimal.

Un autre exemple : entrez dans une cellule : 111a11 et exécutez le code :

Code:
Cells.Replace What:="a", Replacement:=",", LookAt:=xlPart

le résultat est : 11111, il n'y a pas de virgule !

Je ne chercherai pas a percer ce mystère...

Mais pour résoudre votre problème, voici une solution, qui fonctionne si à l'origine toutes les valeurs comme 111,11 sont du texte :

Code:
Cells.Replace What:=",", Replacement:="#", LookAt:=xlPart
Cells.Replace What:=".", Replacement:=""
Cells.Replace What:="#", Replacement:="."

C'est le point qui doit remplacer # (et pas la vigule).

A+

Edit : je suis éloigné de chez moi et suis sur un autre ordi avec Excel 2007
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
278
Réponses
17
Affichages
1 K
  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
99
Réponses
5
Affichages
482
Réponses
7
Affichages
171
Réponses
4
Affichages
205
Réponses
3
Affichages
681
Retour