Problème macro remplace . par

Bonjour à tous,

Je me tourne vers vous pour un problème de macro.

En pièce jointe le fichier d'exemple.

Ce que je veux: faire une macro qui remplace les points d'une date par des /.

J'ai fait la macro en utilisant l'outil enregistrer une macro.

Ca fonctionne mais certaines de mes dates se transforment en date américaine! Mois - jours - année alors que le format de départ est bien jour - mois - année.

C'est sans doute un problème de format mais j'ai beau tout essayer rien n'y fait

D'avance merci pour votre regard avisé

15macro.xlsm (812.02 Ko)

Bonjour

Essayez comme ceci :

Sub remplacerXP()
'
With Sheets("Data")
dlg = .Range("K" & .Rows.Count).End(xlUp).Row
    .Range("K2:K" & dlg).Replace What:=".", Replacement:="/"
    .Range("K2:K" & dlg).NumberFormat = "dd/mm/yyyy"
End With
End Sub

Si ok et terminé, merci de cloturer le fil en cliquant sur la case à cocher verte à coté du bouton EDITER lors de votre réponse.

Cordialement

Merci pour la réponse mais ça ne fonctionne pas

Il me sort des dates en novembre et décembre 2017 alors que je n'ai pas de date allant jusque là (il inverse jours et mois)

C'est un casse-tête.

Quand je fais la manip manuellement ça fonctionne, quand c'est la macro ça foire

re

Il me sort des dates en novembre et décembre 2017 alors que je n'ai pas de date allant jusque là (il inverse jours et mois)

Si voyez la ligne 11628 vous avez un mois 11 année 2017

Bonjour

fonctionne très bien la formule de Dan

formule placée dans la worksheet change de la feuille Data + 1 bouton* (on peut le supprimer*)

crdlt,

André

13macro-ok.xlsm (846.55 Ko)
Dan a écrit :

re

Il me sort des dates en novembre et décembre 2017 alors que je n'ai pas de date allant jusque là (il inverse jours et mois)

Si voyez la ligne 11628 vous avez un mois 11 année 2017

Bizarre car la bonne date est juillet 2017 et non décembre.


Andre13 a écrit :

Bonjour

fonctionne très bien la formule de Dan

formule placée dans la worksheet change de la feuille Data + 1 bouton* (on peut le supprimer*)

crdlt,

André

Merci, je n'ai pas tout compris à votre phrase

J'ai testé et ca plante excel chez moi, ca toune en boucle. Obligé de faire escape et une fenêtre débogage apparaît.

J'en perds mon latin.

Je joins un autre fichier.

La colonne K de l'onglet data. C'est la Macro qui a fait le remplacement . par /.

La colonne L du même onglet, j'ai fait la manip manuellement (rechercher, remplacer, ...)

J'ai filtrer sur l'année 2017 en décembre et vous verrez que les deux colonnes diffèrent.

K = mois jours année

L = Jours mois année

Pourquoi?

Bonjour,

Le cas échéant, essaie ainsi :

Sub ConvertDate()
    Dim c As Range
    With Worksheets("Data")
        Application.ScreenUpdating = False
        On Error Resume Next
        For Each c In .Range(.Cells(2, 11), .Cells(.Rows.Count, 11).End(xlUp))
            If c <> "" Then c.Value = CDate(Replace(c.Text, ".", "/"))
        Next c
    End With
End Sub

Ce sera un peu long, mais tu ne le fais qu'une fois...

Cordialement.

MFerrand a écrit :

Bonjour,

Le cas échéant, essaie ainsi :

Sub ConvertDate()
    Dim c As Range
    With Worksheets("Data")
        Application.ScreenUpdating = False
        On Error Resume Next
        For Each c In .Range(.Cells(2, 11), .Cells(.Rows.Count, 11).End(xlUp))
            If c <> "" Then c.Value = CDate(Replace(c.Text, ".", "/"))
        Next c
    End With
End Sub

Ce sera un peu long, mais tu ne le fais qu'une fois...

Cordialement.

Désolé, mais je n'ai rien compris. J'ai des notions très légères comparé à vous tous


Voici le fichier avec mon exemple et la comparaison macro <=> manuel

Merci

12macro2.xlsm (811.42 Ko)

Bé ! tu colles la macro dans un module standard, et tu lances et tu vois le résultat...

Comme je l'ai dit, ce sera un petit peu long, mais à ma connaissance ça devrait fournir le résultat attendu.

Cordialement.

Bonjour Nowhereman,

Je te retourne ton fichier avec les bonnes dates.

Cordialement

6macro2.xlsm (797.30 Ko)
Rechercher des sujets similaires à "probleme macro remplace"