Salut la communauté,
J'ai pu voir plusieurs post sur le sujet, mais je n'arrive pas à régler mon problème sous VBA.
J'ai des utilisateurs qui doivent remplir des cellules (D7,D9,B14) avec le clavier numérique pour un format de type :
0,00 (avec une virgule)
J'ai sollutionné pour certains le problème du séparateur décimal via :
Private Sub Workbook_Open()
With Application
.DecimalSeparator = ","
.ThousandsSeparator = " "
.UseSystemSeparators = False
End With
end sub
Mais j'ai encore des utilisateurs qui remplissent ces cellules avec le "." du clavier (ils utilisent le shift ou caps lock)
Je cherche donc pour ma feuille sous Worksheet_Change(ByVal Target As Range) à transformer automatiquement le "." en "," après saisie.
A la sélection de certaines cellules à remplir il y a un Msgbox pour aide à la saisie.
la saisie du "." provoque par calcul sur d'autres cellules un : #Valeur!
Comment faire pour l'executer à chaque sélection pour vérification ?
Un peu imbriqué comme ceci :
If Target.Cells.Address = "$D$7" Then
Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
Sinon tout bête j'ai pensé à çà :
If Range("C12").Value = "#Valeur!" Then
MsgBox ("Une donnée est incorrect, veuillez utiliser le séparateur numérique de votre clavier"), vbExclamation
End If
Mais çà ne marche pas. Il ne reconnait pas "#Valeur!"
Merci de votre appui.