XL 2016 Mettre les nombres enregistrés en format texte, au format nombre

BPM

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide car j'ai un classeur Excel dans lequel j'importe les données d'un logiciel extérieur, le soucis est que avec le copier-coller tous les chiffres situés dans ma colonne "D" se mettent sous format texte. Je traite énormément de données, d'où mon souhait d'avoir un code VBA pour réussir à convertir de façon automatique tous les chiffres au format nombre. J'ai essayé l'enregistreur de macros mais il ne prend compte la correction de l'erreur et ne me sort pas de code. Et dans mon tableau le nombre de ligne est variable. Je joins un petit fichier texte pour illustrer.

Je vous remercie d'avance pour votre aide.
 

Pièces jointes

  • Exemple.xlsm
    22 KB · Affichages: 12

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour BPM,
En PJ un essai avec :
VB:
Sub TexteEnNombre()
    Dim L%: Application.ScreenUpdating = False
    For L = 2 To Range("A65500").End(xlUp).Row
        If Cells(L, "D") <> "" Then
            Cells(L, "D") = Val(Cells(L, "D"))
        End If
    Next L
End Sub
Vous pouvez la lancer par ALT+F8 puis TexteEnNombre, ou raccrocher cette macro à un bouton, comme bon vous semble.
 

Pièces jointes

  • Exemple.xlsm
    28.2 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour BPM,

Exécutez cette macro :
VB:
Sub Convertir()
[D:D].NumberFormat = "General" 'format Standard
[I1] = 0
With Selection 'mémorise
    [I1].Copy
    [D:D].SpecialCells(xlCellTypeConstants).PasteSpecial xlPasteValues, Operation:=xlAdd 'collage spécial avec addition
    .Select
End With
[I1] = ""
Application.CutCopyMode = 0
End Sub
A+
 

Pièces jointes

  • Exemple(1).xlsm
    29.9 KB · Affichages: 4

BPM

XLDnaute Nouveau
Bonjour BPM,
En PJ un essai avec :
VB:
Sub TexteEnNombre()
    Dim L%: Application.ScreenUpdating = False
    For L = 2 To Range("A65500").End(xlUp).Row
        If Cells(L, "D") <> "" Then
            Cells(L, "D") = Val(Cells(L, "D"))
        End If
    Next L
End Sub
Vous pouvez la lancer par ALT+F8 puis TexteEnNombre, ou raccrocher cette macro à un bouton, comme bon vous semble.
Bonjour, merci pour cette solution cela résout bien mon problème.
 

BPM

XLDnaute Nouveau
Bonjour BPM,

Exécutez cette macro :
VB:
Sub Convertir()
[D:D].NumberFormat = "General" 'format Standard
[I1] = 0
With Selection 'mémorise
    [I1].Copy
    [D:D].SpecialCells(xlCellTypeConstants).PasteSpecial xlPasteValues, Operation:=xlAdd 'collage spécial avec addition
    .Select
End With
[I1] = ""
Application.CutCopyMode = 0
End Sub
A+
Bonjour, merci également pour cette proposition de solution elle résout aussi le problème.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG