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

  • Initiateur de la discussion Initiateur de la discussion BPM
  • 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 !

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

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

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

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.
 
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.
 
- 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
5
Affichages
1 K
Retour