Boucle trop longue

Adeus33

XLDnaute Occasionnel
Bonjour le forum.

Dans mon fichier je dois mettre en forme certaine valeur.

Dans une de mes colonnes je dois transformer les . par des /
J'ai donc le code suivant:
Code:
ligne = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
Range('K2' & ':K' & ligne - 1).Select
    
For Each c In Selection
c.Value = CDate(Replace(c, '.', '/'))
Next c

Le probleme est que ce code mais beaucoup de temps à s'exécuter.
Est il possible de tous les transformer en meme temps au lieu de faire ligne par ligne .


Merci pour votre aide.

Cordialement.

Adeus 33
 

excalibur

XLDnaute Impliqué
bonjour tous le monde en reprenant le code de charly qui pour moi est le plus prometteur l utilisation d un tableau intermediere ya pas plus rapide moins d une seconde sur 50000 lignes ...donc en bidouillant un peu sur excel 2003 j arrive a un resultat est ce que l espace a la fin gene !!! pour d autres calcul essayer de le supprimer !!! Sub charly()
Dim Tableau
Dim i&, l&
Dim Plage As Range
Set Plage = Range('k2', Range('k65536').End(xlUp))
Tableau = Plage
For i = 1 To UBound(Tableau)
Tableau(i, 1) = (Tableau(i, 1)) & ' '
Next i
Plage = Tableau
Tableau = Plage
For l = 1 To UBound(Tableau)
Tableau(l, 1) = Replace(Tableau(l, 1), '.', '/')
Next l
Plage = Tableau
Erase Tableau
End Sub
'salutations
 

jp14

XLDnaute Barbatruc
Bonjour Adeus33, le Fil


Pour transformet en texte, il faut sélectionner la colonne puis 'format' 'cellule' 'nombre' 'texte'

On retrouve ce problème au niveau des dates lorsque l'on importe un fichier texte dans word.
Si excel reconnait une date (xx xx xxxx) il considére quelle est sous le format jj/mm/aaaa ( paramètres internationaux ) et par défaut la transforme à la forme mm/jj/aaaa sauf si on spécifie JMA (code 4 dans une macro Array(x,4)).
Avant de faire cette transformation le logiciel vérifie la cohérence des données, la valeur pour un mois est comprise entre 1 et 12

JP

Message édité par: jp14, à: 08/03/2006 15:47

Message édité par: jp14, à: 08/03/2006 15:47
 

jp14

XLDnaute Barbatruc
Bonjour

Une autre solution, utiliser l'option convertir du menu Données

Sub Macro2()
Range('A1:A12').Select
Selection.TextToColumns Destination:=Range('A1'), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 4), Array(10, 1)), TrailingMinusNumbers:=True

End Sub

JP
 

Discussions similaires

Réponses
7
Affichages
435

Statistiques des forums

Discussions
312 336
Messages
2 087 389
Membres
103 534
dernier inscrit
Kalamymustapha