Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle trop longue

  • Initiateur de la discussion Initiateur de la discussion Adeus33
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
Merci beaucoup pour ses conseils, je ne vais pas avoir le temps cet après midi mais je vais essayé, en tout cas je vous tiendrais au courant.

Message édité par: adeus33, à: 08/03/2006 13:51
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
645
  • Question Question
Microsoft 365 Cpier/coller en VBA
Réponses
7
Affichages
818
F
  • Question Question
Réponses
11
Affichages
1 K
Réponses
3
Affichages
992
L
Réponses
9
Affichages
1 K
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…