XL 2019 Target ne s'exécute pas si je valide ma cellule vide

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)
Je vous souhaite un beau WE :)

Je bute sur un cas que je n'avais rencontré et je ne trouve pas le bon code malgré mes recherches.
Comme d'hab, j'en appelle à nos ténors....

Je travail sur 2 codes
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("d5:d11")) Is Nothing Then
    Application.EnableEvents = False
    R = ""
    R.Select
    Application.EnableEvents = True
    'Exit Sub
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("d5:d11")) Is Nothing Then
    Application.EnableEvents = False
        If Target = "" Then
        Target = "mettez un truc"
        End If
        Target = Target.Value
        [a1].Select
        Application.EnableEvents = True
End If
End Sub
Le contexte au clic dans les cellules "D5 : D11"
Je saisis une somme qui se valide avec le code "Target"
Si je mets la cellule "à blanc" Target prends la valeur "mettez un truc"
Jusque-là tout va bien lol :)

Voici mon besoin
J'ai aussi le code "SelectionChange" qui vide d'abord la cellule au clic
La cellule se trouve donc vide.

Je voudrais si je valide (entrée) la cellule en la laissant vide :
Que Target s'exécute et que la cellule prenne la valeur "mettez un truc"
Autrement dit, que Target s'exécute même si je valide la cellule vide

Auriez-vous le bon code ?
En cas, je joins un petit fichier test.
Merci à toutes et à tous...
:)
 

Pièces jointes

  • test target.xlsm
    17.6 KB · Affichages: 5

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

On doit pouvoir aussi le faire comme ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Target, Range("d5:d11")) Is Nothing Then
      Application.EnableEvents = False: On Error Resume Next
      Range("d5:d11").SpecialCells(xlCellTypeBlanks) = "mettez un truc"
      On Error GoTo 0: Application.EnableEvents = True
   End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
   Worksheet_SelectionChange Target
End Sub
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
Ah!! sacré Lionel c'est le meilleur
il nous réinvente excel celui là
diabolo.gif
 

Discussions similaires