Bonjour à tous
Je travail sur une base de donnée contenant des dates importés d'une source internet.
Suite à l'importation, plusieurs des dates s'affiche à un formats du type "avr.-13" pour la date 01/04/2013.
Cependant, excel ne reconnait pas ce format de date (il reconnait plutôt un format "avr-13", c'est à dire le même du dessus mais le "." en moins).
Mon objectif est de pouvoir changer le format des dates du type "avr.-13" en "avr-13" et ce sur 16 feuilles d'un même classeur.
Je me suis donc dit qu'en remplaçant les "." par "" avec une fonction replace pourrait faire l'affaire (dans une double boucle, une boucle pour les feuilles et l'autre pour les lignes).
En visitant le forum je me suis inspiré d'un code pour faire celui-ci:
Dim i, j As Integer
Dim n As Integer
For j = 1 To 16
n = ThisWorkbook.Worksheets(j).Cells(Rows.Count, 8).End(xlUp).Row
For i = 15 To n
ThisWorkbook.Worksheets(j).Cells(i, 8) = Replace(ThisWorkbook.Worksheets(j).Cells(i, 8).Value, ".", "")
Next i
Next j
La macro tourne mais sans modifier les "." en "" et lorsque j'essaye la même chose mais pour une feuille:
Dim i, j As Integer
Dim n As Integer
n = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 8).End(xlUp).Row
For i = 15 To n
ThisWorkbook.Worksheets(1).Cells(i, 8) = Replace(ThisWorkbook.Worksheets(1).Cells(i, 8).Value, ".", "")
Next i
Next j
Le code fonctionne lorsque il y a bien un "." qui traîne dans la date, mais quand la date est au bon format (i.e type "avr-13") ils se trouvent tous remplacer par "janv-13".
J'ai remarqué qu’en-fait il convertit les dates noté par exemple comme 01/12/2013 pour être affichés "déc-13" en 12/01/2013 pour être à la suite affiché "janv-13".
Ceci est surement du au faite que vba communique en anglais et donc inverse les jours avec les mois comme sont présenté les date en anglais.
Du coup, comment dire au compilateur de ne pas changer le format, i.e de ne pas passer d'un format français à anglais?
PS: les dates sont à la 8ième colonne de chaque feuilles. Je vais préparer un document excel à télécharger pour présenter le problème.
Merci à tous de votre attention