Message quand cellule modifiée

martial -  
 martial -
Bonjour à tous.
je cherche une macro qui m'enverrait un message lorsque je tape dans une cellule qui n'est pas vide.
qui pourrait m'aider ?
Très sincèrement merci.

2 réponses

  1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Salut Martial,

    Je suppose qu'il s'agit d'Excel ?
    C'est possible... Mais c'est pour quel usage ? Si c'est pour éviter d'effacer des données intempestivement avec des fausses manipulations, tu as aussi la solution de protéger tes feuilles...
    Peux-tu préciser ?
    0
    1. martial
       
      Salut Armojax.
      > Merci pour la r=E9ponse. Je n'ai pu répondre plus tôt car
      > j'étais = en week-end ; il s'agit évidemment d'excel. Il s'agit
      > d'un tableau de saisie, dans lequel des données sont enregistrées
      > au coup par coup = avant
      > transfert vers d'autre fichier. La page principale comportant des
      > formules est déjà protégée, je ne peux donc pas déprotéger - reprotéger et d'autre part je ne suis pas seul à utiliser ce fichier > J'ai trouvé une bribe de code que je t'envoie. Je
      > n'arrive pas à dire à excel "si la cellule et complétement vide,
      > n'affiche pas ce message" A part ça, il ne marcherait pas trop mal.
      > Merci beaucoup pour l'aide.
      > Martial


      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim vCol, vRéponse As Integer
      Dim vCellule As Object
      If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub
      If Target.Value = "" Then Exit Sub
      vCol = Target.Column
      If vCol >= 1 Or vCol <= 12 Then
      For Each vCellule In Range(Chr(vCol + 64) & ":" & Chr(vCol + 64))
      If LCase(Target.Value) = "" Then Exit Sub
      vRéponse = MsgBox("Vous allez effacer des données ! Voulez-vous continuer ?", vbYesNo + vbInformation, "Attention")
      If vRéponse = vbNo Then
      Range(Target.Address).Activate
      SendKeys "{F2}"
      End If
      Exit Sub
      Next
      End If
      End Sub
      0
  2. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bonsoir Martial,

    T'es tout près du but !

    Remplace seulement
    Private Sub Worksheet_Change(ByVal Target As Range)
    par
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Quelques petites choses accessoires ou presque :
    - Si tu veux définir vCol comme Integer, il faut écrire :
    Dim vCol As Integer, vRéponse As Integer

    - On peut aussi tester :
    If Target.Cells.Count > 1 Then Exit Sub

    - Mets un And au lieu d'un Or :
    If vCol >= 1 And vCol <= 12 Then...

    Normalement ça marche.
    Armojax.
    0
    1. martial
       
      Merci Armojax !
      Ca marche très bien. J'aurais simplement souhaité afficher le message uniquement lorsque l'on clique dans une cellule non vide, mais bon, peut être connais-tu la solution ?
      En tout les cas merci beaucoup pour ton aide.
      Amicalement

      Martial
      0