Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Message box identique sur plusieurs cellules

RoseP

XLDnaute Nouveau
Bonjour à tous,

Je souhaite qu'une fenêtre s'affiche à l'écran avec un bouton "ok" lorsque l'on écrit quelques choses dans une cellule,
Un tableau sera probablement plus parlant... :
AB
test1
test2

Souhait : un message box s'affiche lorsque l'on écrit dans les lignes de la colonne B.

J'avais commencé ma macro avec le code suivant :
VB:
Sub mess()
'texte directement introduit dans le code
MsgBox "Merci de préciser la raison dans les commentaires"
End Sub

Mais je ne parviens pas à la liée aux cellules...

Je vous remercie par avance pour votre aide.

Bonne journée
 
Solution
Bonjour le forum
Bonjour RoseP

Essaie ceci :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
If Target.Value <> "" Then
MsgBox "Merci de préciser la raison dans les commentaires"
End If
End If
End Sub
Bonne journée
@+ Eric c

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour RoseP

Essaie ceci :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
If Target.Value <> "" Then
MsgBox "Merci de préciser la raison dans les commentaires"
End If
End If
End Sub
Bonne journée
@+ Eric c
 

Pièces jointes

  • RoseP.xlsm
    14.6 KB · Affichages: 5

RoseP

XLDnaute Nouveau
Bonjour @Eric C , merci de votre réponse, c'est effectivement ce que je cherche à réaliser.
Est-il possible de m'expliquer comment vous avez réaliser cela ? car je ne parviens pas à l'intégrer à mon fichier.
Merci par avance

Bonne journée!
 

Eric C

XLDnaute Barbatruc
Re le fil

Commentaires dans le code - Il n'est pas évident de répondre à la demande sans fichier anonymisé joint
VB:
Private Sub Worksheet_Change(ByVal Target As Range)            
'C'est une macro événementielle qui réagit chaque fois qu'on modifie une cellule dans la feuille
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
   'Condition 1) On veut une action quand on Clique n'importe où dans la colonne "B" uniquement
If Target.Value <> "" Then                                          
'Condition 2) Si on entre une valeur dans la cellule (cellule n'est pas "vide") alors, à la sortie
MsgBox "Merci de préciser la raison dans les commentaires"          
 'le message apparaît
End If  
'Fin de condition
End If
'Idem
End Sub
'Fin de procédure
Bonne journée
@+ Eric c
 

RoseP

XLDnaute Nouveau
j'ai mis du temps mais j'ai fini par comprendre... (je suis encore très novice en VBA... mais j'ai la volonté de vouloir réussir!)

maintenant que j'ai compris exactement ce que vous me disiez; si je souhaitais faire apparaitre ce message box entre B1 et B6, ainsi que sur B10 jusqu'à B15,
comment puis-je le faire?

Merci @Eric C
 

Eric C

XLDnaute Barbatruc
Re le fil
Voici le code :
VB:
If Not Application.Intersect(Target, Range("B1:B6, B10:B15")) Is Nothing Then

Cela fait toujours plaisir de savoir que la contribution a aidé (ou pas).
N'hésitez pas à marquer le sujet comme solutionné le cas échéant (à droite du post) ou à liker.


Bonne après-midi à toutes & à tous

@+ Eric c
 

RoseP

XLDnaute Nouveau
merci beaucoup, j'avais essayé avec la virgule, j'avais l'espace après... pourtant c'est comme en français : toujours un espace après la virgule!!!
Encore merci pour votre patience et votre aide!

Bonne après-midi à tous
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…