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

[VBA] Valeur numérique apparaissant en non numérique

11 réponses
Avatar
HD
Bonjour,

J'ai donné qui viennent d'un logiciel externe, parmi ces données j'ai
parfois des chiffres qui sont alignés à gauche et donc non reconnu comme
étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d'une
colonne que les chiffres présents soient bien considérés comme numérique
mais... mon souci est que la fonction isnumeric me retournent vrai lorsque
je fais le test.

Y'aurait il une autre fonction pour tester, en VBA, la validité d'une valeur
numérique ?

Merci d'avance pour votre aide
--
@+
HD

10 réponses

1 2
Avatar
Tatanka
Bonjour,

Peut-être ceci :
Application.IsNumber(ActiveCell)

Serge


On 11 jan, 11:25, "HD" wrote:
Bonjour,

J'ai donné qui viennent d'un logiciel externe, parmi ces données j'ai
parfois des chiffres qui sont alignés à gauche et donc non reconnu co mme
étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d' une
colonne que les chiffres présents soient bien considérés comme num érique
mais... mon souci est que la fonction isnumeric me retournent vrai lorsqu e
je fais le test.

Y'aurait il une autre fonction pour tester, en VBA, la validité d'une v aleur
numérique ?

Merci d'avance pour votre aide
--
@+
HD
Avatar
Tatanka
Sans macro, tu pourrais aussi essayer :

1) Sélectionne une cellule vraiment vide et tape Ctrl+C,
2) Sélectionne toutes tes données,
3) Clique sur Copier / Collage spécial et coche Addition.

Serge

On 11 jan, 11:36, Tatanka wrote:
Bonjour,

Peut-être ceci :
Application.IsNumber(ActiveCell)

Serge

On 11 jan, 11:25, "HD" wrote:



> Bonjour,

> J'ai donné qui viennent d'un logiciel externe, parmi ces données j' ai
> parfois des chiffres qui sont alignés à gauche et donc non reconnu comme
> étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d'une
> colonne que les chiffres présents soient bien considérés comme nu mérique
> mais... mon souci est que la fonction isnumeric me retournent vrai lors que
> je fais le test.

> Y'aurait il une autre fonction pour tester, en VBA, la validité d'une valeur
> numérique ?

> Merci d'avance pour votre aide
> --
> @+
> HD- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Avatar
michdenis
Bonjour,

Un exemple pour transformer toutes les données numériques
d'une plage de cellules en valeur numérique (affichage à droite)

'---------------------------------------
Sub test()
'Désactive les procédures événementielles
'le temps de l'exécution de ce qui suit.
Application.EnableEvents = False
With Sheet1
'insère la valeur 1 dans une cellule de ton choix
With .Range("Z1")
.Value = 1
'Copie dans le presse-papier
.Copy
End With
'Détermine la plage de cellules à traiter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
'S'assure que tu n'as pas de caractères insécables
'Chr(160)dans ta plage de cellules.
.Replace Chr(160), ""
'effectue un collage spécial Valeur et Multiplication
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
'Vide la cellule de début de procédure
.Range("Z1") = ""
End With
'Désactive le mode Coller (élimine les pointillés autour
'de la cellule z1
Application.CutCopyMode = False
'Réactive les procédures événementielles
Application.EnableEvents = True
End Sub
'------------------------------------



MichD
--------------------------------------------
"HD" a écrit dans le message de groupe de discussion : igi0d3$pc9$

Bonjour,

J'ai donné qui viennent d'un logiciel externe, parmi ces données j'ai
parfois des chiffres qui sont alignés à gauche et donc non reconnu comme
étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d'une
colonne que les chiffres présents soient bien considérés comme numérique
mais... mon souci est que la fonction isnumeric me retournent vrai lorsque
je fais le test.

Y'aurait il une autre fonction pour tester, en VBA, la validité d'une valeur
numérique ?

Merci d'avance pour votre aide
--
@+
HD
Avatar
Tatanka
Salut Denis,

Ne serait-il pas plus prudent d'ajouter
.Replace Chr(32), ""
en bas de
.Replace Chr(160), ""
?

Et si on sait l'adresse de la plage concernée,
je propose ceci ( exemple ) :
Sub Numérique()
With Range("a1:a100")
.Replace Chr(160), ""
.Replace Chr(32), ""
End With
[a1:a100] = [1*a1:a100]
End Sub

Serge

On 12 jan, 09:01, "michdenis" wrote:
Bonjour,

Un exemple pour transformer toutes les données numériques
d'une plage de cellules en valeur numérique (affichage à droite)

'---------------------------------------
Sub test()
'Désactive les procédures événementielles
'le temps de l'exécution de ce qui suit.
Application.EnableEvents = False
With Sheet1
    'insère la valeur 1 dans une cellule de ton choix
    With .Range("Z1")
        .Value = 1
        'Copie dans le presse-papier
        .Copy
    End With
    'Détermine la plage de cellules à traiter
    With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        'S'assure que tu n'as pas de caractères insécables
        'Chr(160)dans ta plage de cellules.
        .Replace Chr(160), ""
        'effectue un collage spécial Valeur et Multiplication
        .PasteSpecial xlPasteValues, xlPasteSpecialOperationMulti ply
    End With
    'Vide la cellule de début de procédure
    .Range("Z1") = ""
End With
'Désactive le mode Coller (élimine les pointillés autour
'de la cellule z1
Application.CutCopyMode = False
'Réactive les procédures événementielles
Application.EnableEvents = True
End Sub
'------------------------------------

MichD
--------------------------------------------
"HD"  a écrit dans le message de groupe de discussion : igi0d3$pc...@ saria.nerim.net...

Bonjour,

J'ai donné qui viennent d'un logiciel externe, parmi ces données j'ai
parfois des chiffres qui sont alignés à gauche et donc non reconnu co mme
étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d' une
colonne que les chiffres présents soient bien considérés comme num érique
mais... mon souci est que la fonction isnumeric me retournent vrai lorsqu e
je fais le test.

Y'aurait il une autre fonction pour tester, en VBA, la validité d'une v aleur
numérique ?

Merci d'avance pour votre aide
--
@+
HD
Avatar
michdenis
| Ne serait-il pas plus prudent d'ajouter
| .Replace Chr(32), ""

Pourquoi pas Serge, on n'est jamais trop prudent !
;-)


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


Salut Denis,

Ne serait-il pas plus prudent d'ajouter
.Replace Chr(32), ""
en bas de
.Replace Chr(160), ""
?

Et si on sait l'adresse de la plage concernée,
je propose ceci ( exemple ) :
Sub Numérique()
With Range("a1:a100")
.Replace Chr(160), ""
.Replace Chr(32), ""
End With
[a1:a100] = [1*a1:a100]
End Sub

Serge

On 12 jan, 09:01, "michdenis" wrote:
Bonjour,

Un exemple pour transformer toutes les données numériques
d'une plage de cellules en valeur numérique (affichage à droite)

'---------------------------------------
Sub test()
'Désactive les procédures événementielles
'le temps de l'exécution de ce qui suit.
Application.EnableEvents = False
With Sheet1
'insère la valeur 1 dans une cellule de ton choix
With .Range("Z1")
.Value = 1
'Copie dans le presse-papier
.Copy
End With
'Détermine la plage de cellules à traiter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
'S'assure que tu n'as pas de caractères insécables
'Chr(160)dans ta plage de cellules.
.Replace Chr(160), ""
'effectue un collage spécial Valeur et Multiplication
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
'Vide la cellule de début de procédure
.Range("Z1") = ""
End With
'Désactive le mode Coller (élimine les pointillés autour
'de la cellule z1
Application.CutCopyMode = False
'Réactive les procédures événementielles
Application.EnableEvents = True
End Sub
'------------------------------------

MichD
--------------------------------------------
"HD" a écrit dans le message de groupe de discussion : igi0d3$

Bonjour,

J'ai donné qui viennent d'un logiciel externe, parmi ces données j'ai
parfois des chiffres qui sont alignés à gauche et donc non reconnu comme
étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d'une
colonne que les chiffres présents soient bien considérés comme numérique
mais... mon souci est que la fonction isnumeric me retournent vrai lorsque
je fais le test.

Y'aurait il une autre fonction pour tester, en VBA, la validité d'une valeur
numérique ?

Merci d'avance pour votre aide
--
@+
HD
Avatar
Tatanka
;-)

Nécessaire si, par exemple :
1 2 3 4
'987 98

Serge


"michdenis" a écrit dans le message de news: igkigk$f86$
| Ne serait-il pas plus prudent d'ajouter
| .Replace Chr(32), ""

Pourquoi pas Serge, on n'est jamais trop prudent !
;-)


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


Salut Denis,

Ne serait-il pas plus prudent d'ajouter
.Replace Chr(32), ""
en bas de
.Replace Chr(160), ""
?

Et si on sait l'adresse de la plage concernée,
je propose ceci ( exemple ) :
Sub Numérique()
With Range("a1:a100")
.Replace Chr(160), ""
.Replace Chr(32), ""
End With
[a1:a100] = [1*a1:a100]
End Sub

Serge

On 12 jan, 09:01, "michdenis" wrote:
Bonjour,

Un exemple pour transformer toutes les données numériques
d'une plage de cellules en valeur numérique (affichage à droite)

'---------------------------------------
Sub test()
'Désactive les procédures événementielles
'le temps de l'exécution de ce qui suit.
Application.EnableEvents = False
With Sheet1
'insère la valeur 1 dans une cellule de ton choix
With .Range("Z1")
.Value = 1
'Copie dans le presse-papier
.Copy
End With
'Détermine la plage de cellules à traiter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
'S'assure que tu n'as pas de caractères insécables
'Chr(160)dans ta plage de cellules.
.Replace Chr(160), ""
'effectue un collage spécial Valeur et Multiplication
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
'Vide la cellule de début de procédure
.Range("Z1") = ""
End With
'Désactive le mode Coller (élimine les pointillés autour
'de la cellule z1
Application.CutCopyMode = False
'Réactive les procédures événementielles
Application.EnableEvents = True
End Sub
'------------------------------------

MichD
--------------------------------------------
"HD" a écrit dans le message de groupe de discussion : igi0d3$

Bonjour,

J'ai donné qui viennent d'un logiciel externe, parmi ces données j'ai
parfois des chiffres qui sont alignés à gauche et donc non reconnu comme
étant des chiffres. Je voudrais pouvoir m'assurer sur chaque cellule d'une
colonne que les chiffres présents soient bien considérés comme numérique
mais... mon souci est que la fonction isnumeric me retournent vrai lorsque
je fais le test.

Y'aurait il une autre fonction pour tester, en VBA, la validité d'une valeur
numérique ?

Merci d'avance pour votre aide
--
@+
HD



Avatar
Tatanka
Nécessaire si, par exemple :
1 2 3 4
'987 98



Mais ça tu le savais sûrement.
Juste un test pour savoir si mes messages se rendent
aujourd'hui à partir de nntp.aioe.org
Le précédent, oui, mais pas celui-ci (passé par Google groupes) !
Tabarnak !!!

Serge
Avatar
michdenis
| Juste un test pour savoir si mes messages se rendent
| aujourd'hui à partir de nntp.aioe.org

As-tu essayé de supprimer cette connexion (forum de discussion)
de redémarrer et de refaire la connexion ?

Ce n'est qu'une suggestion !


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


Nécessaire si, par exemple :
1 2 3 4
'987 98



Mais ça tu le savais sûrement.
Juste un test pour savoir si mes messages se rendent
aujourd'hui à partir de nntp.aioe.org
Le précédent, oui, mais pas celui-ci (passé par Google groupes) !
Tabarnak !!!

Serge
Avatar
Tatanka
J'ai tout essayé ( supprimer le serveur et le réinstaller,
redémarrer l'ordi, invoquer les dieux ... ) sans succès
durant trois jours mais aujourd'hui, je n'ai rien fait et
ça fonctionne. Mystère et boule de gomme !

Serge

"michdenis" a écrit dans le message de news: igkv10$dbl$
| Juste un test pour savoir si mes messages se rendent
| aujourd'hui à partir de nntp.aioe.org

As-tu essayé de supprimer cette connexion (forum de discussion)
de redémarrer et de refaire la connexion ?

Ce n'est qu'une suggestion !


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


Nécessaire si, par exemple :
1 2 3 4
'987 98



Mais ça tu le savais sûrement.
Juste un test pour savoir si mes messages se rendent
aujourd'hui à partir de nntp.aioe.org
Le précédent, oui, mais pas celui-ci (passé par Google groupes) !
Tabarnak !!!

Serge

Avatar
HD
Application.IsNumber(ActiveCell)


Effectivement... ça m'affiche bien si la valeur de la cellule est considérée
comme numérique ou non.

--
@+
HD
1 2