Je souhaite rendre obligatoire la saisie d’une cellule (Motif) en fonction des valeurs d’une cellule précédente (statut) de la même ligne avant de passer à la ligne suivante.
Merci.
BONJOUR!
Je ne suis pas sur d’avoir bien compris ta question.
Pourrais tu nous donner plus de détails stp et si possible inclure un fichier d’exemple?
Merci et à bientôt
Bonjour,
Je n’ai pas de fichier exemple par contre je peux essayer d’être plus précis.
Si nous avons un tableau de deux colonnes (A et B) ou l’une (colonne A) est le statut qui peut prendre que 2 valeurs (accepté où rejeté).
Pour chaque ligne de mon tableau où le statut contient la valeur “rejeté” il faudrait que la colonne B correspondante (Motif) sois obligatoirement renseigné sinon on ne peut pas poursuivre les saisies.
J’espère avoir été plus clair et encore merci pour votre assistance.
Cordialement.
J’ai essayé d’illustrer mon besoin dans le fichier joint dans le besoin que cela puisse aider à comprendre mon attente.
exple.xlsx (10,0 Ko)
Cordialement.
Bonjour,
Pour le fun, à modifier suivant le classeur
Si une des cellules de la colonne A contient “REJETE”, alors la feuille se verrouille et seul la cellule de la colonne B est modifiable, avec un commentaire.
Les macros
Option Explicit
Dim Dl As Long, i As String, c
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo fin
Feuil1.Unprotect 'Déprotection de la feuille
Application.EnableEvents = False ' dé-activer les evenements détectés
Dl = Range("A" & Rows.Count).End(xlUp).Row ' dernière ligne
If Not Application.Intersect(Target, Range("a2:B" & Dl)) Is Nothing Then 'Si changement colonne A2 à dernière ligne
If LCase(Target.Value) = "rejeté" Then
i = Target.Offset(0, 1).Address 'Adresse de la ligne et colonne B concernée
Cells.Select 'Sélectionne toutes les cellules de la feuille
Selection.Locked = True 'Verrouille les cellules
Range(i).Locked = False 'dé-verrouille la cellule concernée
Comment 'lance la macro Comment
For Each c In ActiveSheet.Comments 'Affiche le commentaire
c.Visible = True
Next c
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 'Protége la feuille
ActiveSheet.EnableSelection = xlUnlockedCells 'Sélection de la cellue non verrouillée
Feuil1.Protect 'Protège la feuille
Application.EnableEvents = True ' activer les evenements détectés
Exit Sub 'Quitte le sub
End If
End If
EffaceCmt 'lance la macro effacer le commentaire
fin:
Application.EnableEvents = True ' activer les evenements détectés
End Sub
Sub Comment() 'Créer le commentaire
With Range(i)
If .Comment Is Nothing Then
.AddComment ' Création commentaire
.Comment.Shape.OLEFormat.Object.Font.Name = "Tverdana"
.Comment.Shape.OLEFormat.Object.Font.Size = 7
.Comment.Shape.OLEFormat.Object.Font.FontStyle = "Normal"
.Comment.Text Text:="Cellule à renseigner obligatoirement..."
.Comment.Shape.TextFrame.AutoSize = True
End If
End With
End Sub
Sub EffaceCmt() 'Efface le commentaire
On Error Resume Next
Selection.ClearComments
End Sub
Le classeur TEST
exple (2).xlsm (20,2 Ko)