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.
A voir également:

2 réponses

Armojax Messages postés 1916 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
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
Armojax Messages postés 1916 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
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