convertir date et nombre stocké en format texte

reda1974

XLDnaute Nouveau
bonjour à tous,

voila j'ai pu a l'aide de recherche sur le net de trouver des code en VBA pour convertir des colonne contenants des date stocké en format texte ainsi que des colonnes de nombre stocké aussi en format texte le souci est lors de l'exécution des deux macro (voir plus bas) y'a une lenteur de l'ordre de 6 à 7 second.

ma question est es qu'il ya un moyen pour les rendre plus rapide sachant que mon fichier contient approximativement 90 000 lignes.

merci par avance

-Code pour convertir Date:( colonnes concernés H et I)

Sub convdate()

Application.ScreenUpdating = False

Dim d&, tablo, p&, t&, j&, pablo
d = [h1000000].End(xlUp).Row
tablo = Application.Transpose(Range("h1:h" & d))
On Error Resume Next 'si toutes les valeurs ne sont pas des dates
For p = 2 To d
tablo(p) = CDbl(CDate(tablo(p)))
Next
With [h1].Resize(d)
.NumberFormat = "dd/mm/yyyy" 'ou autre format Date
.Value = Application.Transpose(tablo)
End With
t = [i1000000].End(xlUp).Row
pablo = Application.Transpose(Range("i1:i" & t))
On Error Resume Next 'si toutes les valeurs ne sont pas des dates
For j = 2 To t
pablo(j) = CDbl(CDate(pablo(j)))
Next
With [i1].Resize(t)
.NumberFormat = "dd/mm/yyyy" 'ou autre format Date
.Value = Application.Transpose(pablo)
End With
Application.ScreenUpdating = True
End Sub



-code pour convertir nombre: ( colonnes concernés J et k)

Sub convNbr() 'remplace les virgules par des points
Application.ScreenUpdating = False

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
Columns("j:j").NumberFormat = "0.00"
Columns("j:j").Value = oDat
Columns("k:k").NumberFormat = "0.00"
Columns("k:k").Value = oDat

Application.ScreenUpdating = True

End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : convertir date et nombre stocké en format texte

Bonsour®
pour les dates
sélectionner la colonne à convertir
menu > Données > Convertir
à l'étape 3 sélectionner le Format lu : MJA ?
Terminer
éventuellement reproduire la manipulation pour une autre colonne

pour les séparateurs décimaux
sélectionner la colonne à modifier
Edition
rechercher : , (virgule)
remplacer : . (point)
remplacer Tout

en cas de résultats satisfaisants
recommencer ces opérations en activant l'enregistreur de macro !
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 350
Membres
103 194
dernier inscrit
rtison