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