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

Microsoft 365 Macro conversion en numérique trop lente

mbeny

XLDnaute Nouveau
Bonjour
J'utilise le code suivant pour transformer des données en nombre suite à une extraction:
Dan sla colonne traitée, il y a des valeurs numériques et alphanumériques, ce qui empêche de multiplier la colonne par 1.
Mais cette macro est très lente !

On Error Resume Next
Range("F2").Select
Dim plage As Range, cel As Range
Set plage = Range("F2:F" & Range("F" & Rows.Count).End(xlUp).Row)
For Each cel In plage
cel = cel * 1
Next

Quelqu'un pourrait-il me proposer un code plus rapide ?
D'avance merci
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour mbeny, le forum

utilisez un tableau VB variant, cela fera la même chose beaucoup plus rapidement en évitant une boucle sur les cellules.
Vérifiez d'abord que vos cellules sont bien au format standard

Bien cordialement, @+
VB:
Dim Plage_Ref As Range, Plage_Val
Set Plage_Ref = Range("F2:F" & Range("F" & Rows.Count).End(xlUp).Row)
Plage_Val = Plage_Ref.Value2
Plage_Ref.Value2 = Plage_Val
 

D.D.

XLDnaute Impliqué
Hello.

Je fais ca en une ligne:
VB:
    Selection.TextToColumns , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
que j'ai mise dans une macro de ma barre de ruban standard.
 

Discussions similaires

Réponses
2
Affichages
154
Réponses
7
Affichages
329
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…