Microsoft 365 Obliger à remplir 1 cellule en fonction de 2 autres

Fatalist

XLDnaute Nouveau
Bonjour à toutes et tous,

Je suis tout nouveau sur ce forum, donc merci pour votre indulgence si j'oublie certaine choses ou point des CGU.

Mon problème est le suivant, je souhaite que la personne qui remplit le tableau soit obligé d'indiquer une date dans une cellule lorsque la personne indique le mot "Redatage" dans 1 cellule parmi 2.

Pour être plus clair, je vous ai mis un fichier.
Dans ce fichier, s'il y a en A2 ou B2 le mot "Redatage" alors la cellule C2 est automatiquement sélectionner tant qu'une date n'est pas indiquée.
Et cela pour toutes les lignes suivantes du fichier.

Merci d'avance pour votre aide

Fatalist
 

Pièces jointes

  • exemple.xlsx
    15.4 KB · Affichages: 8
Solution
Hello tout le monde
@fanfan38
sans passer par une table, on pouvait modifier ton code simplement
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long
For i = 2 To UsedRange.Rows.Count
    If Not IsDate(Range("C" & i).Value) Then
        If Range("A" & i).Value = "Redatage" Or Range("B" & i).Value = "Redatage" Then
            Range("C" & i).Select
            Exit For
        End If
    End If
Next i
End Sub

Fatalist

XLDnaute Nouveau
Bonjour Fanfan38,

Merci pour ton aide.

En testant ta solution, cela fonctionne seulement lorsque "Redatage" apparaît en colonne A. Lorsqu'il y a "Redatage" en colonne B, l'obligation d'indiquer une date en colonne C n'est pas respectée.

L'obligation est imposée seulement si "Redatage" est indiqué sur n'importe quelle ligne en colonne A.
Exemple : si Redatage en B2 alors on est libre, mais si un redatage apparait en A5, on devient obligé d'imposer la date en C2 et C5.
J'espère avoir été assez clair ;)

De plus, comme je suis curieux, peux-tu m'expliquer comment fonctionne la macro que tu as mis en place stp? :)

Merci
 

fanfan38

XLDnaute Barbatruc
Bonjour
Je pense avoir contourné le problème en mettant tes données sous forme de tableau
Dès que tu selectionnes une cellule la macro se lance
Une boucle analyse toutes les lignes et si en A ou en B il est marqué Redatage contrôle si il y a une date en C. Sinon blocage sur la cellule correspondante
A+ François
 

Pièces jointes

  • exemple (1).xlsm
    18 KB · Affichages: 3
Dernière édition:

vgendron

XLDnaute Barbatruc
Hello tout le monde
@fanfan38
sans passer par une table, on pouvait modifier ton code simplement
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long
For i = 2 To UsedRange.Rows.Count
    If Not IsDate(Range("C" & i).Value) Then
        If Range("A" & i).Value = "Redatage" Or Range("B" & i).Value = "Redatage" Then
            Range("C" & i).Select
            Exit For
        End If
    End If
Next i
End Sub
 

Discussions similaires

Réponses
46
Affichages
865

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg