Condition pour apparition liste déroulante

Bonjour

Voila plusieurs jours que je me casse la tête pour trouver la solution à mon problème mais en vain.

Je vous explique :

Dans mon tableau de gestion du personnel, j'ai créer des listes déroulantes pour la main d'oeuvre interne avec le nom des personnes

par contre je souhaite que pour les intérimaires, la liste déroulante n'apparaisse pas et que je puisse marquer les noms directement dans la cellule.

Je vous joins mon fichier pour plus de clareté

Merci d'avance pour votre aide.

11test.xlsm (29.11 Ko)

Bonjour

Dans le volet "Alerte d'erreur" de la validation de données, il suffit de décocher "Quand des données non valides sont tapées" pour avoir une liste vide quand tu sélectionnes "Intérim"

Tu peux alors taper n'importe quel nom

Cordialement

10test.xlsm (28.45 Ko)

Merci j'ai testé cette solution mais en faisant ça on peut mettre n'importe quel nom aussi pour les conducteurs, maneuvres... et ça je ne veux pas

Bonjour

Il faut passer par VBA

Code de Feuille

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then' Quand une valeur en colonne A est changée
On Error resume Next 'ajouté pour effacement en colonne A (Colonne du Target)
Target.Offset(0, 1).Select ' sélectionne la cellule à droite
If Target <> "Intérim" Then ' si le target (cellule colonne A changée)
With Selection.Validation 'on ajoute la validation de liste si elle n'existe pas
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=" & Target.Value
    End With
    ElseIf Target = "Intérim" Then 'si la cellule du target est "intérim" on supprime la validation de donnée cellule à droite
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With

 End If
End If
End Sub

Cordialement

13test.xlsm (30.13 Ko)

merci jetais pas prêt de trouver. par contre y a un problème quand j efface la valeur en colonne a jai un message erreur

aussi si vous pouvez expliquer brièvement le code que je recopie pas bêtement

Bonjour

Il n'est pas prévu d'effacer la colonne A.

Pour supprimer le message d'erreur, j'ai rajouté l'instruction

On Error resume next 

destinée à ignorer l'erreur.

J'ai repris le message précédent et ajouté les commentaires

Cordialement

Super je comprends un peu mieux

Peut-il avoir un lien entre code vba et protection des cellules ?

Je veux protéger les cellules comportant les formules de calcul et ça empêche d'afficher la liste déroulante en colonne B

Faut-il rajouter qqch dans le code VBA?

Rechercher des sujets similaires à "condition apparition liste deroulante"