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

convertire le format de cellule

13 réponses
Avatar
joseph84
Bonjour tout le monde

je voudrais changer le format de cellule d une de mes colonnes avec
une macro j arrive a le faire mais c tres lent et en plus si il trouve
du texte il le supprime voila ma procedure
---------------------------------------------------------
Dim maZone As Range
Set maZone =3D Range("A2:A20000") 'D=E9finit plage
maZone.Select
Dim unecellule As Object
For Each unecellule In Selection
valeur =3D ActiveCell.Value
If valeur =3D "" Then 'Saute cellules vides
GoTo suite
End If
On Error Resume Next

valnum =3D CDbl(valeur) 'convertit texte en chiffre
unecellule.Value =3D valnum
suite:
ActiveCell.Offset(1, 0).Select
Next
-----------------------------------------------------------------
Merci

10 réponses

1 2
Avatar
Péhemme
Bonjour Joseph84,

Je n'ai pas bien compris la sélection de cellule à l'intérieur d'un range
pour l'application d'un format sur une feuille de calcul, mais tu dois avoir
tes raisons. Cependant, un simple numberformat appliqué à ta zone ne
serait-il pas suffisant ?

Sub TestFormat()
Dim Rg As Range
Set Rg = Range("A2:A20000") 'Définit plage

Rg.NumberFormat = "#,##0.00"

Set Rg = Nothing
End Sub

Michel



"joseph84" a écrit dans le message de
news:
Bonjour tout le monde

je voudrais changer le format de cellule d une de mes colonnes avec
une macro j arrive a le faire mais c tres lent et en plus si il trouve
du texte il le supprime voila ma procedure
---------------------------------------------------------
Dim maZone As Range
Set maZone = Range("A2:A20000") 'Définit plage
maZone.Select
Dim unecellule As Object
For Each unecellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then 'Saute cellules vides
GoTo suite
End If
On Error Resume Next

valnum = CDbl(valeur) 'convertit texte en chiffre
unecellule.Value = valnum
suite:
ActiveCell.Offset(1, 0).Select
Next
-----------------------------------------------------------------
Merci
Avatar
joseph84
Merci pour t as reponse

mais malheureusement sa ne fonctionne pas le format de la cellule
reste le meme
je vous explique ma plage est de la 2 eme ligne au denier
enregistrement de ma colonne il n y a pas de vide
dans cette plage il y a des numeros mais en format texte je voudrais
utliser ses numeros mais en format numerique parce que sa me donne
juste des #N/A quand ils en format texte
merci



On 25 mai, 03:04, Péhemme wrote:
Bonjour Joseph84,

Je n'ai pas bien compris la sélection de cellule à l'intérieur d'un range
pour l'application d'un format sur une feuille de calcul, mais tu dois av oir
tes raisons. Cependant, un simple numberformat appliqué à ta zone ne
serait-il pas suffisant ?

Sub TestFormat()
Dim Rg As Range
Set Rg = Range("A2:A20000") 'Définit plage

    Rg.NumberFormat = "#,##0.00"

Set Rg = Nothing
End Sub

Michel

"joseph84" a écrit dans le message denews:c75c6
Bonjour tout le monde

je voudrais changer le format de cellule d une de mes colonnes avec
une macro j arrive a le faire mais c tres lent et en plus si il trouve
du texte il le supprime voila ma procedure
---------------------------------------------------------
 Dim maZone As Range
Set maZone = Range("A2:A20000") 'Définit plage
maZone.Select
Dim unecellule As Object
For Each unecellule In Selection
valeur = ActiveCell.Value
If valeur = "" Then 'Saute cellules vides
GoTo suite
End If
On Error Resume Next

valnum = CDbl(valeur) 'convertit texte en chiffre
unecellule.Value = valnum
suite:
ActiveCell.Offset(1, 0).Select
Next
-----------------------------------------------------------------
Merci
Avatar
MichD
Bonjour,

Tu adaptes le nom de la feuille et de la plage de cellules.
Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
ne sont pas présents dans les cellules contenant des chiffres.

.Replace Chr(160), "" -> caractères Ascii -> espace insécable
.Replace " ", ""

'-----------------------------------
Sub test()
With Worksheets("Feuil1")
With .Range("B1:B12")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
End With
End Sub
'-----------------------------------


MichD
--------------------------------------------
Avatar
Péhemme
Bonjour Denis,

La macro qui "tue Billy" est formidable, mais il ne faut surtout pas
l'utiliser 2 fois de suite (sur le même champ) sans quoi, gare aux
résultats...
Et je l'aime bien en finissant par une mise en forme du champ du style :
Rg.NumberFormat = "#,##0.00"

Merci Denis (et Jacquouille)
;-)
Michel




"MichD" a écrit dans le message de
news:iriq83$rcj$
Bonjour,

Tu adaptes le nom de la feuille et de la plage de cellules.
Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
ne sont pas présents dans les cellules contenant des chiffres.

.Replace Chr(160), "" -> caractères Ascii -> espace insécable
.Replace " ", ""

'-----------------------------------
Sub test()
With Worksheets("Feuil1")
With .Range("B1:B12")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
End With
End Sub
'-----------------------------------


MichD
--------------------------------------------

Avatar
joseph84
Merci MichD

ce que je veux faire c est de convertir la colonne A en format
standard

merci

On 25 mai, 07:47, "MichD" wrote:
Bonjour,

Tu adaptes le nom de la feuille et de la plage de cellules.
Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
ne sont pas présents dans les cellules contenant des chiffres.

.Replace Chr(160), ""   -> caractères Ascii -> espace insécable
.Replace " ", ""

'-----------------------------------
Sub test()
With Worksheets("Feuil1")
    With .Range("B1:B12")
        .Replace Chr(160), ""
        .Replace " ", ""
        .Replace ".", ","
        .Replace ",", "."
    End With
End With
End Sub
'-----------------------------------

MichD
--------------------------------------------
Avatar
Péhemme
Ben, la macro de Denis que tu complètes, avant le End Sub, par :
Rg.NumberFormat = "General"
Non ?
Michel

"joseph84" a écrit dans le message de
news:
Merci MichD

ce que je veux faire c est de convertir la colonne A en format
standard

merci

On 25 mai, 07:47, "MichD" wrote:
Bonjour,

Tu adaptes le nom de la feuille et de la plage de cellules.
Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
ne sont pas présents dans les cellules contenant des chiffres.

.Replace Chr(160), "" -> caractères Ascii -> espace insécable
.Replace " ", ""

'-----------------------------------
Sub test()
With Worksheets("Feuil1")
With .Range("B1:B12")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
End With
End Sub
'-----------------------------------

MichD
--------------------------------------------
Avatar
joseph84
Merci bcp j apprecie votre aide

malheureusement sa fonctionne pas il me sort une erreur

variable objet ou variable de bloc with non defini

sub test ()
Dim rg As Range

With Worksheets("Feuil1")
With .Range("A2:A200000")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
rg.NumberFormat = "General"

End With
end sub

j ai tester les deux j ai mis la ligne (rg.NumberFormat = "General")
apres le premier en with et apres le deuxieme end with mais sa
fonctionne pas


merci


On 25 mai, 09:25, Péhemme wrote:
Ben, la macro de Denis que tu compl tes, avant le End Sub, par :
Rg.NumberFormat = "General"
Non ?
Michel

"joseph84" a crit dans le message denews:821751fb
Merci MichD

ce que je veux faire c est de convertir la colonne A en format
standard

merci

On 25 mai, 07:47, "MichD" wrote:



> Bonjour,

> Tu adaptes le nom de la feuille et de la plage de cellules.
> Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
> ne sont pas pr sents dans les cellules contenant des chiffres.

> .Replace Chr(160), "" -> caract res Ascii -> espace ins cable
> .Replace " ", ""

> '-----------------------------------
> Sub test()
> With Worksheets("Feuil1")
> With .Range("B1:B12")
> .Replace Chr(160), ""
> .Replace " ", ""
> .Replace ".", ","
> .Replace ",", "."
> End With
> End With
> End Sub
> '-----------------------------------

> MichD
> --------------------------------------------- Masquer le texte des mess ages précédents -

- Afficher le texte des messages précédents -
Avatar
Péhemme
La macro de Denis ne fonctionne pas ?
Chez moi elle roule parfaitement bien (Vista, Excel 2003).
Sub Tst_Mp()
Dim Rg As Range
Set Rg = Range("E6:E2000") 'Définit plage
With Worksheets("Feuil1")
With Rg
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
End With
Rg.NumberFormat = "General" '"#,##0.00"
Set Rg = Nothing
End Sub
Michel


"joseph84" a écrit dans le message de
news:
Merci bcp j apprecie votre aide

malheureusement sa fonctionne pas il me sort une erreur

variable objet ou variable de bloc with non defini

sub test ()
Dim rg As Range

With Worksheets("Feuil1")
With .Range("A2:A200000")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
rg.NumberFormat = "General"

End With
end sub

j ai tester les deux j ai mis la ligne (rg.NumberFormat = "General")
apres le premier en with et apres le deuxieme end with mais sa
fonctionne pas


merci


On 25 mai, 09:25, Péhemme wrote:
Ben, la macro de Denis que tu compl tes, avant le End Sub, par :
Rg.NumberFormat = "General"
Non ?
Michel

"joseph84" a crit dans le message
denews:
Merci MichD

ce que je veux faire c est de convertir la colonne A en format
standard

merci

On 25 mai, 07:47, "MichD" wrote:



> Bonjour,

> Tu adaptes le nom de la feuille et de la plage de cellules.
> Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
> ne sont pas pr sents dans les cellules contenant des chiffres.

> .Replace Chr(160), "" -> caract res Ascii -> espace ins cable
> .Replace " ", ""

> '-----------------------------------
> Sub test()
> With Worksheets("Feuil1")
> With .Range("B1:B12")
> .Replace Chr(160), ""
> .Replace " ", ""
> .Replace ".", ","
> .Replace ",", "."
> End With
> End With
> End Sub
> '-----------------------------------

> MichD
> --------------------------------------------- Masquer le texte des
> messages précédents -

- Afficher le texte des messages précédents -
Avatar
joseph84
toujours pas je crois que je fais quelque chose qui est pas correct

vous allez retrouvez mes deux fichier dans les liens qui suit je
voudrais copier coller mes deux colonne "NBAC" et "NBSF" mais
malhereusement sa fonctionne sa me retourne des #N/A car les numeros
ne sont pas du meme format il faut absolument que je convertit le
format de ma colonne A dans le fichier source de facon qu il me
retourne pas des #N/A

fichier :destination: http://cjoint.com/?AEzqFAWMdDe

fichier source: http://cjoint.com/?AEzqJhqQR1Q

merci encore de votre aide


On 25 mai, 10:05, Péhemme wrote:
La macro de Denis ne fonctionne pas ?
Chez moi elle roule parfaitement bien (Vista, Excel 2003).
Sub Tst_Mp()
Dim Rg As Range
Set Rg = Range("E6:E2000") 'D finit plage
With Worksheets("Feuil1")
    With Rg
        .Replace Chr(160), ""
        .Replace " ", ""
        .Replace ".", ","
        .Replace ",", "."
    End With
End With
    Rg.NumberFormat = "General" '"#,##0.00"
Set Rg = Nothing
End Sub
Michel

"joseph84" a crit dans le message denews:cef3eee5
Merci bcp j apprecie votre aide

malheureusement sa fonctionne pas il me sort une erreur

variable objet ou variable de bloc with non defini

sub test ()
Dim rg As Range

    With Worksheets("Feuil1")
    With .Range("A2:A200000")
        .Replace Chr(160), ""
        .Replace " ", ""
        .Replace ".", ","
        .Replace ",", "."
    End With
    rg.NumberFormat = "General"

End With
end sub

j ai tester les deux j ai mis la ligne (rg.NumberFormat = "General")
apres le premier en with et apres le deuxieme end with mais sa
fonctionne pas

merci

On 25 mai, 09:25, P hemme wrote:



> Ben, la macro de Denis que tu compl tes, avant le End Sub, par :
> Rg.NumberFormat = "General"
> Non ?
> Michel

> "joseph84" a crit dans le message
> denews: m...
> Merci MichD

> ce que je veux faire c est de convertir la colonne A en format
> standard

> merci

> On 25 mai, 07:47, "MichD" wrote:

> > Bonjour,

> > Tu adaptes le nom de la feuille et de la plage de cellules.
> > Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
> > ne sont pas pr sents dans les cellules contenant des chiffres.

> > .Replace Chr(160), "" -> caract res Ascii -> espace ins cable
> > .Replace " ", ""

> > '-----------------------------------
> > Sub test()
> > With Worksheets("Feuil1")
> > With .Range("B1:B12")
> > .Replace Chr(160), ""
> > .Replace " ", ""
> > .Replace ".", ","
> > .Replace ",", "."
> > End With
> > End With
> > End Sub
> > '-----------------------------------

> > MichD
> > --------------------------------------------- Masquer le texte des
> > messages pr c dents -

> - Afficher le texte des messages pr c dents -- Masquer le texte des mes sages précédents -

- Afficher le texte des messages précédents -
Avatar
MichD
Sub test()
With Worksheets("Feuil1")
With .Range("B1:B12")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
.NumberFormat = "General"
End With
End With
End Sub



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


toujours pas je crois que je fais quelque chose qui est pas correct

vous allez retrouvez mes deux fichier dans les liens qui suit je
voudrais copier coller mes deux colonne "NBAC" et "NBSF" mais
malhereusement sa fonctionne sa me retourne des #N/A car les numeros
ne sont pas du meme format il faut absolument que je convertit le
format de ma colonne A dans le fichier source de facon qu il me
retourne pas des #N/A

fichier :destination: http://cjoint.com/?AEzqFAWMdDe

fichier source: http://cjoint.com/?AEzqJhqQR1Q

merci encore de votre aide


On 25 mai, 10:05, Péhemme wrote:
La macro de Denis ne fonctionne pas ?
Chez moi elle roule parfaitement bien (Vista, Excel 2003).
Sub Tst_Mp()
Dim Rg As Range
Set Rg = Range("E6:E2000") 'D finit plage
With Worksheets("Feuil1")
With Rg
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
End With
Rg.NumberFormat = "General" '"#,##0.00"
Set Rg = Nothing
End Sub
Michel

"joseph84" a crit dans le message
denews:
Merci bcp j apprecie votre aide

malheureusement sa fonctionne pas il me sort une erreur

variable objet ou variable de bloc with non defini

sub test ()
Dim rg As Range

With Worksheets("Feuil1")
With .Range("A2:A200000")
.Replace Chr(160), ""
.Replace " ", ""
.Replace ".", ","
.Replace ",", "."
End With
rg.NumberFormat = "General"

End With
end sub

j ai tester les deux j ai mis la ligne (rg.NumberFormat = "General")
apres le premier en with et apres le deuxieme end with mais sa
fonctionne pas

merci

On 25 mai, 09:25, P hemme wrote:



> Ben, la macro de Denis que tu compl tes, avant le End Sub, par :
> Rg.NumberFormat = "General"
> Non ?
> Michel

> "joseph84" a crit dans le message
> denews:
> Merci MichD

> ce que je veux faire c est de convertir la colonne A en format
> standard

> merci

> On 25 mai, 07:47, "MichD" wrote:

> > Bonjour,

> > Tu adaptes le nom de la feuille et de la plage de cellules.
> > Ces 2 lignes ne sont pas obligatoires, si tu es certain qu'il
> > ne sont pas pr sents dans les cellules contenant des chiffres.

> > .Replace Chr(160), "" -> caract res Ascii -> espace ins cable
> > .Replace " ", ""

> > '-----------------------------------
> > Sub test()
> > With Worksheets("Feuil1")
> > With .Range("B1:B12")
> > .Replace Chr(160), ""
> > .Replace " ", ""
> > .Replace ".", ","
> > .Replace ",", "."
> > End With
> > End With
> > End Sub
> > '-----------------------------------

> > MichD
> > --------------------------------------------- Masquer le texte des
> > messages pr c dents -

> - Afficher le texte des messages pr c dents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
1 2