Bonjour,
Pour remplacer les points par des virgules il n'est pas utile de passer par une boucle
Cette ligne
Columns("j:j").Replace ".", ","
Au lieu de
1 2 3 4 5
| Dim i As Long, oDat()
oDat = Columns("j:j").Value
For i = 1 To UBound(oDat, 1)
oDat(i, 1) = Replace(oDat(i, 1), ",", ".")
Next i |
Pour convertir des dates en texte (je suppose que les dates sont écrites '15/05/2016'
J'utilise le Copier/Collage spécial - Multiplier après avoir copier le contenu d'une cellule ayant comme valeur le chiffre 1
1 2 3 4 5 6 7
| With ThisWorkbook
.Worksheets("Feuil2").Range("A1").Copy ' la cellule doit contenir le chiffre 1
With .Worksheets("Feuil1").Columns("A:A")
.PasteSpecial Operation:=xlMultiply
.NumberFormat = "dd/mm/yyyyy"
End With
End With |
J'ajouterais qu'il n'est pas judicieux de travailler sur une colonne dans ce cas précis mais bien préciser la plage de données
Les deux codes proposés peuvent fonctionner sur plusieurs lignes et plusieurs colonnes (Exemple A2:C15000).
Pour les dates, si la cellule est vide, la valeur sera 00/01/1900
Attention encore, s'il s'agit de dates enregistrées au format américain cette solution ne renverra pas les bonnes valeurs.
S'il s'agit d'une opération après lecture d'un fichier csv, Il existe une meilleure solution avec la méthode TextToColumns où l'on peut gérer les séparateurs de milliers et les dates au bon format
Partager