XL 2013 Convertir valeurs en format texte en nombre (résolu)

Cougar

XLDnaute Impliqué
Bonjour le forum,

J'ai trouvé ce code pour convertir les valeurs en format texte en nombre :
Tabl = Range("c2:c1000")
For i = LBound(Tabl, 1) To UBound(Tabl, 1)
Tabl(i, 1) = CDbl(Tabl(i, 1))
Next
Range("c2").Resize(UBound(Tabl, 1), 1) = Tabl

Mon problème est que mon range varie d'une semaine à l'autre ce qui a comme résultat ce ne sont pas toutes les valeurs qui sont converti. J'ai essayé Range("C2" & Rows.Count).End(xlUp).Offset(1, 0).Select mais sans succès.

Donc, comment écrire le code pour qu'il prenne toutes les données Range("c2:cxxx") ? Voir fichier joint.

Merci
 

Pièces jointes

  • Compétences 3 mois test.xlsm
    589.2 KB · Affichages: 13

ChTi160

XLDnaute Barbatruc
Bonjour Cougar
Bonjour le Fil ,le Forum
une approche
VB:
Sub expérience()
Dim Tabl
 Dim DerLgn  As Long
'convertir valeur texte en nombre
 With Worksheets("Total")
DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row
     Tabl = .Range("A2:E" & DerLgn).Value    
    For i = LBound(Tabl, 1) To UBound(Tabl, 1)
         Tabl(i, 3) = CDbl(Trim(Tabl(i, 3)) * 1)
          Tabl(i, 4) = CDbl(Trim(Tabl(i, 4)) * 1)
           Tabl(i, 5) = CDbl(Trim(Tabl(i, 5)) * 1)
    Next
     .Range("A2").Resize(UBound(Tabl, 1), UBound(Tabl, 2)) = Tabl
 End With
End Sub
jean marie
 

chris

XLDnaute Barbatruc
Bonjour à tous

Une autre solution
VB:
Sub expérience()
            
'convertir valeur texte en nombre
    LFin = Range("C" & Rows.Count).End(xlUp).Row
    Range("Z2").FormulaR1C1 = "1"
    Range("Z2").Copy
    Range("C2:E" & LFin).PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    Range("Z2").ClearContents

End Sub
 

Discussions similaires

Réponses
12
Affichages
242

Statistiques des forums

Discussions
312 103
Messages
2 085 312
Membres
102 860
dernier inscrit
fredo67