OVH Cloud OVH Cloud

rechercher/remplacer dans une macro

6 réponses
Avatar
Romain de Lyon
pour automatiser la fonction rechercher/remplacer un"." par "," dans un
tableau d'export csv, j'ai fait une macro en utilisant l'assistant.
Résultat : lorsque je lance ma macro, dans certaines lignes, le point à été
simplement suprimé et non remplacé par une virgule.
Par contre quand on fait le rechercher/remplacer manuellement, ça fonctionne
et tous les points sont remplacés par des virgules.
Est ce que je suis un manche ou y a t-il un bug dans Excel ?

6 réponses

Avatar
MichDenis
à partir de l'explorateur Windows,

un clic droit sur ton fichier .csv
tu choisis la commande "Ouvrir Avec" et tu choisis "Notepad"
à l'aide de la commande Remplacer du menu Éditer,
tu fais la substitution, il y a en a pour quelques secondes !






"Romain de Lyon" <Romain de a écrit dans le message de news:

pour automatiser la fonction rechercher/remplacer un"." par "," dans un
tableau d'export csv, j'ai fait une macro en utilisant l'assistant.
Résultat : lorsque je lance ma macro, dans certaines lignes, le point à été
simplement suprimé et non remplacé par une virgule.
Par contre quand on fait le rechercher/remplacer manuellement, ça fonctionne
et tous les points sont remplacés par des virgules.
Est ce que je suis un manche ou y a t-il un bug dans Excel ?
Avatar
Romain de Lyon
Merci, mais c'est pas temps la manipulation qui me pose problème mais plutôt
la macro qui fait ce qu'elle veut... alors que la manip manuelle fonctionne,
elle !

Romain de Lyon


à partir de l'explorateur Windows,

un clic droit sur ton fichier .csv
tu choisis la commande "Ouvrir Avec" et tu choisis "Notepad"
à l'aide de la commande Remplacer du menu Éditer,
tu fais la substitution, il y a en a pour quelques secondes !


Avatar
MichDenis
| remplacer un"." par ","

Ton fichier est ouvert dans Excel ?

Les cellules où tu n'obtiens pas satisfaction, ont-elles ont un format numérique ?
Est-ce que le but de ton opération est de modifier le séparateur décimale de tes cellules ?

Faut pas te gêner pour donner des détails sur ce que tu tentes de faire...





"Romain de Lyon" a écrit dans le message de news:

Merci, mais c'est pas temps la manipulation qui me pose problème mais plutôt
la macro qui fait ce qu'elle veut... alors que la manip manuelle fonctionne,
elle !

Romain de Lyon


à partir de l'explorateur Windows,

un clic droit sur ton fichier .csv
tu choisis la commande "Ouvrir Avec" et tu choisis "Notepad"
à l'aide de la commande Remplacer du menu Éditer,
tu fais la substitution, il y a en a pour quelques secondes !


Avatar
Romain de Lyon
Voici un extrait du tableau excel dans une page html.
1265.96
280
300
337.44
275
400
383.73
337.16364333163
721.23
619.79
601.957055392259
915.569503072631

Je fais un copier coller dans un classeur Excel et pour pouvoir exploiter
ces infos, je les remets en forme afin qu'elles agrémentent d'autres tableaux.
En général ce sont les nombres à 14 chiffres qui posent problème. Au lieu
d'avoir 915,569503072631 j'ai 915569503072631.
Par contre lors d'un rechercher/remplacer (CTRL+H) que j'effectue
manuellement, ça fonctionne parfaitement.


| remplacer un"." par ","

Ton fichier est ouvert dans Excel ?

Les cellules où tu n'obtiens pas satisfaction, ont-elles ont un format numérique ?
Est-ce que le but de ton opération est de modifier le séparateur décimale de tes cellules ?

Faut pas te gêner pour donner des détails sur ce que tu tentes de faire...


Avatar
MichDenis
Esssaie ceci :

Ceci s'adresse seulement à une plage de cellule
pour tes grands nombre...

Seulement, si tu as beaucoup de chaînes très différentes
quant au nombre de chiffres après le point, la procédure
ne fonctionnera pas, car elle applique qu'un nombre limité
de format en fonction de l'échantillonnage que tu as adressé
dans ta demande.

'----------------------------
Sub test()
Dim Tblo as Variant, a as long, b as long
With Range("A1:A18")
tblo = .Value
For a = 1 To UBound(tblo, 1)
For b = 1 To UBound(tblo, 2)
If Len(Replace(tblo(a, b), ".", ",")) < 12 Then
.NumberFormat = "General"
.Item(a, b).Value = tblo(a, b)
Else
.NumberFormat = "###,############"
.Item(a, b).Value = tblo(a, b)
End If
Next
Next
End With
End Sub
'----------------------------




"Romain de Lyon" a écrit dans le message de news:

Voici un extrait du tableau excel dans une page html.
1265.96
280
300
337.44
275
400
383.73
337.16364333163
721.23
619.79
601.957055392259
915.569503072631

Je fais un copier coller dans un classeur Excel et pour pouvoir exploiter
ces infos, je les remets en forme afin qu'elles agrémentent d'autres tableaux.
En général ce sont les nombres à 14 chiffres qui posent problème. Au lieu
d'avoir 915,569503072631 j'ai 915569503072631.
Par contre lors d'un rechercher/remplacer (CTRL+H) que j'effectue
manuellement, ça fonctionne parfaitement.


| remplacer un"." par ","

Ton fichier est ouvert dans Excel ?

Les cellules où tu n'obtiens pas satisfaction, ont-elles ont un format numérique ?
Est-ce que le but de ton opération est de modifier le séparateur décimale de tes cellules ?

Faut pas te gêner pour donner des détails sur ce que tu tentes de faire...


Avatar
Romain de Lyon
Merci Mich Denis pour tes efforts mais le travail à la main est dés fois plus
simple qu'une masturbation intellectuelle.
Ce que je ne comprends pas c'est qu'en utilisant une même commande on obient
un résultat différent lorsqu'on la réalise manuellement ou par le biais d'une
macro (enregistrement de l'opération manuelle)


Esssaie ceci :

Ceci s'adresse seulement à une plage de cellule
pour tes grands nombre...

Seulement, si tu as beaucoup de chaînes très différentes
quant au nombre de chiffres après le point, la procédure
ne fonctionnera pas, car elle applique qu'un nombre limité
de format en fonction de l'échantillonnage que tu as adressé
dans ta demande.