Macro "date" qui fonctionne sur une partie des résultats seulement

Bonjour a tous,

J'ai crée cette petite macro simple pour modifier l'apparence d'un fichier Excel que je télécharge régulièrement depuis l'intranet de ma société. Pour je ne sais quelle raison, le fichier me donne systématiquement des dates au format JJ.MM.AAAA

ces dates ne sont donc pas reconnues au format date par Excel je fais donc un simple "remplacer les "." par des "/" (plus quelques modification d'affichage)

Sub M_Routine_VsListe()
'
' M_Routine_VsListe Macro
'

'
Range("J1:K5000").Select
Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Rows("1:1").Select
Selection.AutoFilter
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True
Columns("L:L").Select
Selection.EntireColumn.Hidden = True
End Sub

Je lance donc la macro et tout se passe comme prévu

Jusque là tout va bien

quand je regarde ensuite mon filtre environ un tiers des dates sont reconnues et le reste apparait simplement au format texte.

image

Ce n'est pas nécessairement le debut ou la fin... cela me semble vraiment aléatoire... ce qui n'est pas bien logique

Voyez vous une erreur dans le code qui pourrait expliquer la difference de traitement des différentes lignes ?

Merci d'avance

Bonjour

Pas besoin de code VBA

- Sélectionnez toutes vos dates
- Allez dans le menu Données --> icone convertir
- Cliquez directement sur Suivant
- Dans séparateurs, cochez la case "Autres" et mettez un / dans la textbox à droite
- Cliquez sur suivant et cochez "l'option "Date" et choisissez le format dans la liste déroulante
- Cliquez sur Terminé

Si ok pensez à

Cordialement

Merci de ton retour Dan,

Ta solution me pose 2 problèmes :

1/ je souhaitais pouvoir faires toutes les modifications du fichier en 1 clic grace a un bouton dans la barre d'outil acces rapide => ici je dois faire cette manip' a chaque nouveau fichier (les données du actualisées jour issues de l'ERP)

2/ les "nouvelles dates" vont s'inscrire dans 3 colonnes differentes puisque séparées par l'outil "Convertir"... a moins qu'une option ne m'aie echappé... Ce probleme n'est pas le plus grave... je peux ensuite automatiser une concatenation et / ou cacher des colonnes

Je joins une version de mon fichier si cela aide a la comprehension..

Merci

Bonjour

2/ les "nouvelles dates" vont s'inscrire dans 3 colonnes differentes puisque séparées par l'outil "Convertir"... a moins qu'une option ne m'aie echappé..

Non du tout. c'est que vous n'avez fait ce que je vous ai écrit.

Les colonnes concernées sont toujours I et J ?

Il s'agit des colonnes J et K qui contiennent les dates a modifier

l'assistant me demande pour chaque "nouvelle" colonne un format et non pas pour l'ensemble des 3...

image

Juste pour comprendre --> A l'étape 1 vous avez quoi de coché ?

juste le "délimité"

image image

et à l'étape 2, pouvez-vous me montrer la vue ?

ahh j'avais bien pensé que la question tomberait... j'avais modifié le post précédent...

Dans "autre" ce n'est pas ce que je vous ai écrit de mettre....

En effet, je pensais que vous parliez de "corriger" la version mal transformée par la macro originelle

Du coup j'enregistre cela dans une macro... Merci

Du coup j'enregistre cela dans une macro... Merci

Non. Prenez le code ci-dessous.

Sub ConversionDate()
Dim dlg As Long, premlig As Long
Dim plage As Range
Dim col As Byte
'
With ActiveSheet
    dlg = .Cells.SpecialCells(xlCellTypeLastCell).Row 'derniere ligne
    premlig = ActiveCell.Row 'premiere ligne
    col ActiveCell.Column 'colonne date
    Set plage = .Range(.Cells(premlig, col), .Cells(dlg, col)) 'plage concernee
    plage.TextToColumns Destination:=.Cells(premlig, col), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="/", FieldInfo:=Array(1, 4), TrailingMinusNumbers:=True
End With
End Sub

Pour exécuter le code vous devez simplement sélectionner la première cellule de la colonne concernée par la modification
Ensuite vous exécutez le code

Dans votre cas, sélectionnez I2 puis exécutez le code.
Ensuite vous refaites la même chose avec J2

Vous pouvez appliquer ce code sur n'importe quel fichier

Cordialement

Rechercher des sujets similaires à "macro date qui fonctionne partie resultats seulement"