Forcer une valeur saisie à être entière

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Je rentre une valeur dans une cellule et je voudrais que seule l'entier de cette valeur, au cas où elle serait décimale, s'affiche.

J'ai tenté ceci :
Code:
Private Sub Worksheet_Change(ByVal target As Range)

  If Not Intersect(target, [C6]) Is Nothing Then
    target = [Round(target,0)]  '--> marche pas du tout
    target = [Round(C6,0)]  '--> marche pas
  End If

End Sub
Comment pourrait-on s'y prendre ?

merci d'avance pour tout avis.
 

frangy

XLDnaute Occasionnel
Re : Forcer une valeur saisie à être entière

Bonjour,

Une exécution du code en pas à pas te permettrait de constater ce dysfonctionnement :
Si la valeur de C6 change, alors change la valeur de C6.
La valeur de C6 ayant changé, change à nouveau la valeur de C6.
La valeur de C6 ayant changé, change à nouveau la valeur de C6.
Etc.

Tu dois donc désactiver l'événement Change à sa première apparition pour éviter une boucle sans fin.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, [C6]) Is Nothing Then
        Application.EnableEvents = False
        Target = Round(Target, 0)
        Application.EnableEvents = True
    End If
End Sub

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16