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

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
252
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…