message box si

judoka0209

XLDnaute Occasionnel
Bonjour j'ai un soucis je ne sais pas comment ecrire en vba
sur la ligne 1 j'ai mon roulement
colonne A j'ai mes 6 equipes
en colonne I il ne peuvent pas faire de M ou A je voudrais une msgbox"interdit" si M ou A apparait sur la colonne i2:I7
merci
 

Pièces jointes

  • Classeur1.xlsm
    8.1 KB · Affichages: 41

VIARD

XLDnaute Impliqué
Bonjour Judoka et à tous

Tu mets ceci dans le code de ta Feuille.
VB:
Option Explicit
'===================
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If Not Application.Intersect(T, Range("I2:I7")) Is Nothing Then
    MsgBox "M ou A Interdit"
End If
End Sub
'===================

A+ Jean-Paul
 

judoka0209

XLDnaute Occasionnel
super ca marche mais j'ai besoin de l'affecter sur une plage

Option Explicit
'=================
Function Nuit_matin(Etat)
If Range("c5:nc5").Value = "N" And Etat = "M" Or Etat = "m" Or Etat = "A" Or Etat = "a" Or Etat = "j" Or Etat = "J" Then
MsgBox "INTERDIT"

End If
End Function

et pour la cellule
=Nuit_matin(c6:nc6)
en gros si j'ai fait une nuit le lendemain je peux pas faire de M ou J ou A
merci
 

judoka0209

XLDnaute Occasionnel
super ca marche mais j'ai besoin de l'affecter sur une plage

Option Explicit
'=================
Function Nuit_matin(Etat)
If Range("c5:nc5").Value = "N" And Etat = "M" Or Etat = "m" Or Etat = "A" Or Etat = "a" Or Etat = "j" Or Etat = "J" Then
MsgBox "INTERDIT"

End If
End Function

et pour la cellule
=Nuit_matin(c6:nc6)
en gros si j'ai fait une nuit le lendemain je peux pas faire de M ou J ou A
merci
 

VIARD

XLDnaute Impliqué
Bonjour Judoka et à tous

J’ai effectué plusieurs manips.
Tout d’abord pour la compréhension, les définitions ne sont pas claires.
Je suppose :

M = matin
N = nuit
A = après-midi
J = journée
R = repos (ça c’est moi qui l’ajoute)
Vide = rien

Mon constat : pour une équipe, c’est une ligne entière et une seule.
Donc il suffit de regarder l’état de la cellule précédente pour valider une réponse.
Dans ces conditions :

N = choix rien ou repos
M =
A =
J =

A la suite de ceci :
‘==============

Sub Nuit_Matin_3
Dim Adr$, Etat$
Dim Col%, Lg%

Adr = ActiveCell.Address
Col = Range(Adr).Column
Lg = Range(Adr).Row
'-----------------
Etat = Cells(Lg, Col - 1).Value 'cellule précédente
Select Case Etat
Case "": MsgBox "Choix --> M, N, A, J"
Case "M": MsgBox "Choix --> N, A, J"
Case "N": MsgBox "Choix --> R"
Case "A": MsgBox "Choix --> M"
Case "J": MsgBox "Choix --> M, N, A"
End Select
'-----------------
End Sub

‘=============
D’autre part je ne vois pas l’intérêt de la première ligne,
Sinon d'y mettre une date.

A+ Jean-Paul
 

Pièces jointes

  • Judoka_3.xlsm
    18.2 KB · Affichages: 22

VIARD

XLDnaute Impliqué
Bonjour Judoka et à tous


Voici le fichier.
Tu y trouveras 3 feuilles
Sur la première j’ai légèrement retouché la fonction « Case ».
Sur la 2ième c’est une autre façon, je me suis inspiré d’un document paru sur le site avec de petites modif.
Sur la 3ième c’est identique à la 2 en plus simple, je pense que cette version est plus adaptée.

Amicalement
Jean-Paul
 

Pièces jointes

  • Judoka_4.xlsm
    54.1 KB · Affichages: 17

Discussions similaires

Réponses
8
Affichages
363

Statistiques des forums

Discussions
311 720
Messages
2 081 917
Membres
101 839
dernier inscrit
laurentEstrées