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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 057601c3ab5b$a4de6dc0$a501280a@phx.gbl...
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
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
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
.
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" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news: 057601c3ab5b$a4de6dc0$a501280a@phx.gbl...
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
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