Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Texte en nombre : simplification

3 réponses
Avatar
Freedo
Bonjour =E0 Toutes et =E0 Tous,
lors de transfert donn=E9es d'un classeur =E0 un autre les=20
donn=E9es des colonnes C et D ne sont pas num=E9riques et cela=20
provoques des erreurs de calculs.
J'ai donc appliqu=E9s la macro ci-dessous (que j'ai repris=20
du NG) et adapt=E9 =E0 mon probl=E8me.
bien que cela fonctionne , y a t il moyen de simplifier le=20
codes vu que je r=E9p=E8te les actions pour chaque colonne C=20
et D.
Bien sur j'avais d=E9j=E0 essay=E9 de formater (en standart ou=20
en nombre)directement les colonnes mais suivant le format=20
(bizarre) d'origine(pas de mon cru) cela n'avait pas=20
d'effet.
Merci de suivre,
Freedo

3 réponses

Avatar
Freedo
Oups, je suis allé trop vite , voici le code utilisé :
Sub TextenNombre()
' Macro enregistrée le 15/11/2003 par Alfredo
Dim maPlage1 As Range
Dim maPlage2 As Range
Dim une1cellule As Object
Dim une2cellule As Object
'-----------------------------------------
Set maPlage1 = Range("c2:" & Range("c65000").End
(xlUp).Address) 'Définit ma 1ère plage
maPlage1.Select
Selection.Replace What:=" ", Replacement:=""
'Dim une1cellule As Object
For Each une1cellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then
GoTo suite1
End If
valnum = CDbl(valeur)
une1cellule.Value = valnum
suite1:
ActiveCell.Offset(1, 0).Select
Next
'--------------------------------------------
Set maPlage2 = Range("d2:" & Range("d65000").End
(xlUp).Address) 'Définit ma 2ème plage
maPlage2.Select
Selection.Replace What:=" ", Replacement:=""
'Dim une2cellule As Object
For Each une2cellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then
GoTo suite2
End If
valnum = CDbl(valeur)
une2cellule.Value = valnum
suite2:
ActiveCell.Offset(1, 0).Select
Next
End Sub

Merci de suivre,
Freedo


Avatar
ru-th
Salut Freedo

a tester n fonction de tes données
Range("C2:D" & Range("C65536").End(xlUp).Row).Value = _
Application.Substitute(Range("C2:D" & Range("C65536").End(xlUp).Row).Value,
" ", "")


a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Freedo" a écrit dans le message de
news: 057601c3ab5b$a4de6dc0$
Oups, je suis allé trop vite , voici le code utilisé :
Sub TextenNombre()
' Macro enregistrée le 15/11/2003 par Alfredo
Dim maPlage1 As Range
Dim maPlage2 As Range
Dim une1cellule As Object
Dim une2cellule As Object
'-----------------------------------------
Set maPlage1 = Range("c2:" & Range("c65000").End
(xlUp).Address) 'Définit ma 1ère plage
maPlage1.Select
Selection.Replace What:=" ", Replacement:=""
'Dim une1cellule As Object
For Each une1cellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then
GoTo suite1
End If
valnum = CDbl(valeur)
une1cellule.Value = valnum
suite1:
ActiveCell.Offset(1, 0).Select
Next
'--------------------------------------------
Set maPlage2 = Range("d2:" & Range("d65000").End
(xlUp).Address) 'Définit ma 2ème plage
maPlage2.Select
Selection.Replace What:=" ", Replacement:=""
'Dim une2cellule As Object
For Each une2cellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then
GoTo suite2
End If
valnum = CDbl(valeur)
une2cellule.Value = valnum
suite2:
ActiveCell.Offset(1, 0).Select
Next
End Sub

Merci de suivre,
Freedo


Avatar
freedo
Bonjour thierry,
Merci beaucoup pour ce maxi simplification de code
Eh ben ! Chapeau ! ca fonctionne très bien.
Je l'ai recopié dans mon classeur avec un peu d'ajout car
si les cellules sont formatés en texte dès le départ , la
macro ne change pas le résultat mais si je formate tout
d'abord les colonnes en format standart et bien que les
caractères à l'écran sont apparemment toujours en texte ,
ta macro convertit bien le tout.
Sub TextenNombre()
Application.ScreenUpdating = False
Columns("B:D").Select
Selection.NumberFormat = "General"
Range("A1").Select
Range("B2:D" & Range("B65536").End(xlUp).Row).Value = _
Application.Substitute(Range("B2:D" & Range("B65536").End
(xlUp).Row).Value, " ", "")
Application.ScreenUpdating = True
Range("A1").Select
End Sub
Cordialement,
Freedo
-----Message d'origine-----
Salut Freedo

a tester n fonction de tes données
Range("C2:D" & Range("C65536").End(xlUp).Row).Value = _
Application.Substitute(Range("C2:D" & Range("C65536").End
(xlUp).Row).Value,

" ", "")


a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Freedo" a écrit
dans le message de

news: 057601c3ab5b$a4de6dc0$
Oups, je suis allé trop vite , voici le code utilisé :
Sub TextenNombre()
' Macro enregistrée le 15/11/2003 par Alfredo
Dim maPlage1 As Range
Dim maPlage2 As Range
Dim une1cellule As Object
Dim une2cellule As Object
'-----------------------------------------
Set maPlage1 = Range("c2:" & Range("c65000").End
(xlUp).Address) 'Définit ma 1ère plage
maPlage1.Select
Selection.Replace What:=" ", Replacement:=""
'Dim une1cellule As Object
For Each une1cellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then
GoTo suite1
End If
valnum = CDbl(valeur)
une1cellule.Value = valnum
suite1:
ActiveCell.Offset(1, 0).Select
Next
'--------------------------------------------
Set maPlage2 = Range("d2:" & Range("d65000").End
(xlUp).Address) 'Définit ma 2ème plage
maPlage2.Select
Selection.Replace What:=" ", Replacement:=""
'Dim une2cellule As Object
For Each une2cellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then
GoTo suite2
End If
valnum = CDbl(valeur)
une2cellule.Value = valnum
suite2:
ActiveCell.Offset(1, 0).Select
Next
End Sub

Merci de suivre,
Freedo




.