Macro Excel : controle sur format nombre

Le
Tishalule
Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère, met en
forme et fais des contrôles sur un autre fichier Excel de base de donné queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0" mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
papou
Le #5123181
Bonjour
Par exemple
MsgBox CLng(Cells(1, 1).Value) = Cells(1, 1).Value
"Tishalule" news:
Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère, met
en
forme et fais des contrôles sur un autre fichier Excel de base de donné
queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un
nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0" mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre
présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !



papou
Le #5123171
Oups ! Parti trop vite...

MsgBox CLng(Cells(1, 1).Value) = Cells(1, 1).Value
Te renverra VRAI si la cellule (ici A1) ne comporte pas de décimale et FAUX
dans le cas contraire.

Cordialement
Pascal

"papou" de news:
Bonjour
Par exemple
MsgBox CLng(Cells(1, 1).Value) = Cells(1, 1).Value
"Tishalule" de news:
Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère, met
en
forme et fais des contrôles sur un autre fichier Excel de base de donné
queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un
nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0" mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre
présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !







Youky
Le #5123161
Bonjours
Si tu veux afficher le montant en centimes dans la colonne(donc sans
virgules)
l'exemple renvoie 1256 en [A1]

x = 12.56789
[A1] = Int(x * 100)

Youky

"Tishalule" news:
Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère, met
en
forme et fais des contrôles sur un autre fichier Excel de base de donné
queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un
nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0" mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre
présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !



FFO
Le #5123151
Salut à toi


Avec la cellule active à traiter ce bout de code devrait faire l'affaire :

For i = 1 To Len(ActiveCell)
Car = Mid(ActiveCell, i, 1)
If Car = "," Then
MsgBox ("Décimal")
End If
Next

Dis moi


Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère, met en
forme et fais des contrôles sur un autre fichier Excel de base de donné queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0" mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !



Tishalule
Le #5123121
Bonjour papou,
J'ai testé ta ligne de macro sur mon classeur.
J'obtiens une réponse "Vrai" quelle que soit la valeur que j'ai dans la
cellule testée (avc ou sans virgule)
J'ai lu dans l'aide que la fonction CLng convertit des fractions, or dans
mon cas je ne cherche pas à convertir le nombre présent dans ma cellule mais
simplement à faire un test de type
If valeur de ma cellule contient une virgule then
"Cells(x,y).Value = "KO"
End If

Merci !


Bonjour
Par exemple
MsgBox CLng(Cells(1, 1).Value) = Cells(1, 1).Value
"Tishalule" news:
Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère, met
en
forme et fais des contrôles sur un autre fichier Excel de base de donné
queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un
nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0" mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre
présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !








papou
Le #5123071
Re
Non, tu te trompes, l'aide stipule simplement qu'en cas de fraction, elles
sont arrondies.
Si tu testes mon exemple sur une valeur en A1 = 122,30
La formule te renvoie FAUX

Donc pour adapter à ton cas :

If Not Clng(cells(1,1).Value)Îlls(1,1).Value Then Cells(1,1).Value = "KO"

(Sinon j'ai utilisé CLng au cas où tes valeurs dépasseraient la valeur 32
767)

Cordialement
Pascal



"Tishalule" news:
Bonjour papou,
J'ai testé ta ligne de macro sur mon classeur.
J'obtiens une réponse "Vrai" quelle que soit la valeur que j'ai dans la
cellule testée (avc ou sans virgule)
J'ai lu dans l'aide que la fonction CLng convertit des fractions, or dans
mon cas je ne cherche pas à convertir le nombre présent dans ma cellule
mais
simplement à faire un test de type
If valeur de ma cellule contient une virgule then
"Cells(x,y).Value = "KO"
End If

Merci !


Bonjour
Par exemple
MsgBox CLng(Cells(1, 1).Value) = Cells(1, 1).Value
"Tishalule" de
news:
Bonjour à tous !
Voilà, je bosse actuellement sur une macro par laquelle je récupère,
met
en
forme et fais des contrôles sur un autre fichier Excel de base de donné
queje
reçois.
Récupération de données, mise en forme, certaisn contrôle, pas de souci
(merci l'enregistreur macro !) mais je butte sur un contrôle :
j'ai une colonne dans laquelle n doivent figurer que des chiffres sans
virgule (montant en centimes). J'ai bien trouvé que pour convertir un
nombre
en cihfre sans virgule je passe par du Selection.NumberFormat = "0"
mais
comment (et puis je ??) demander à ma macro de vérifier que le nombre
présent
dans ma cellule n'a pas de virgule ??

Merci d'avance, j'espere avoir été assez claire !










Youky
Le #5123051
Pour le fun ......vu que j'étais à coté de la plaque....
x = 12.54
If x / Int(x) = 1 Then
MsgBox "sans virgule"
Else
MsgBox "avec virgule"
End If

Youky
Tishalule
Le #5123011
Ouiiiiiii !
Merci beaucoup !
Ca correspond tout à fait à ce que je cherchais !
Merci !


Pour le fun ......vu que j'étais à coté de la plaque....
x = 12.54
If x / Int(x) = 1 Then
MsgBox "sans virgule"
Else
MsgBox "avec virgule"
End If

Youky





Publicité
Poster une réponse
Anonyme