Format de cellule

Bonjour à toutes et tous,

J'utilise une macro me permettant de traiter des données d'inventaire en traitant suivant un critère de date et de prix. Cela fonctionne parfaitement, sauf au niveau des formats. Après lancement de la macro je m'aperçois que dans certaine cellule il y a une différence de code suivant la taille de la cellule, c'est affiché en valeur exponentielle, dans d'autres cas il enlève le zéro devant le nombre. J'ai essayé de changer le format de cellules avant et après traitement, sans succès. Auriez-vous une solution à m'apporter ?

Je vous remercie par avance

Michel

PS : Sur le fichier Excel dans la partie droite (après traitement par la macro) j'ai colorisé en vert et orange certaines cellules à titre d'exemple

Bonjour

Il faut formater la colonne L en texte

Option Explicit

Sub DerniereMAJ()
Dim t, ref, n&, i&, j&, deb#
   deb = Timer: Application.ScreenUpdating = False
   [k1].CurrentRegion.Clear
   t = Intersect([a1].CurrentRegion, Columns("h:i")).Value
   For i = 2 To UBound(t): t(i, 1) = IIf(Right(t(i, 1), 4) = "1899", CDate("01/01/1900"), CDate(t(i, 1))): Next i
   Range("h1").Resize(UBound(t), UBound(t, 2)) = t
   [k1].CurrentRegion.Clear
   Columns("a:i").Copy Columns("k:k")
   [k1].CurrentRegion.Sort key1:=[L1], order1:=xlAscending, key2:=[r1], order2:=xlDescending, Header:=xlYes, MatchCase:=False
   t = [k1].CurrentRegion
   n = 2: ref = t(2, 2)
   For i = 3 To UBound(t)
      If t(i, 2) <> ref Then: n = n + 1: For j = 1 To UBound(t, 2): t(n, j) = t(i, j): Next: ref = t(i, 2)
   Next i
   [k1].CurrentRegion.Clear
   Range("L:L").NumberFormat = "@"
   [k1].Resize(n, UBound(t, 2)) = t
   Me.ListObjects.Add SourceType:=xlSrcRange, Source:=[k1].CurrentRegion, XlListObjectHasHeaders:=xlYes, TableStyleName:="TableStyleMedium26"
   Me.[k1].ListObject.Name = "MajTarif": Me.[k1].ListObject.Range.Borders.LineStyle = xlContinuous
   MsgBox Format(n, "#,##0") & " enregistrements restants en " & Format(Timer - deb, "#,##0.00\ sec.")
End Sub

Merci beaucoup, je vais tester

Parfait merci beaucoup, je vais comparer avec l'ancienne macro pour le traitement complémentaire

RE

J'ai juste ajouté une ligne pour formater la colonne L après le dernier

[k1].CurrentRegion.Clear
Rechercher des sujets similaires à "format"