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

Bloquer des celulles non concernées par la validation des données

  • Initiateur de la discussion Initiateur de la discussion JunFan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

JunFan

Guest
Bonjour

J'ai fait à peu près tous les sujets qui touchent de près ou de loin les listes de validation de données. Mais aucun ne m'a aider à résoudre mon problème.

J'ai inséré une liste déroulante pour valider chaque ligne de mon fichier, par un simple choix entre "V" et "X".

J'aimerai cependant que les lignes à 0 ne puissent pas être validées (ou non). Je pensais pouvoir passer par les validation de données pour insérer les 2 critères (liste déroulante + blocage des lignes différentes de 0 avec message d'erreur), mais cela ne marche pas (ou bien je n'y arrive pas). Vous vous imaginez bien que les lignes à 0 ne sont jamais les mêmes, et que je peux pas insérer ma liste déroulante ligne par ligne en fonction (entre 500 et 2000 lignes...).

Je voulais si possible ne pas passer par un Code VBA pour ne pas les multiplier (le fichier en contient déjà), mais si il n'y a pas d'autre choix je suis preneur de toute suggestion.

Merci aux participants
 

Pièces jointes

Dernière modification par un modérateur:
Re : Bloquer des celulles non concernées par la validation des données

Bonjour JunFan, bonjour le forum,

Désolé mais il y a du VBA... Le code :
Code:
Sub Macro2()
Dim cel As Range 'déclare la variaboe cel (CELlule)

For Each cel In Range("B4:B" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'boucle sur toutes les cellules éditées cel de la colonne B (en partant de B4)
    If Application.WorksheetFunction.Sum(Range(Cells(cel.Row, 3), Cells(cel.Row, 5))) <> 0 Then 'condition : si la somme des cellules des colonne C,D et E n'est pas nulle
        With cel.Offset(0, 5).Validation 'prend en compte la validation de données de la cellule en colonne G
            .Delete 'supprime un éventuelle validation existante
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=$N$5:$N$6" 'ajoute la nouvelle validation de données
        End With 'fin de la prise en compte de la validation de donnée de la cellule en colonne G
    Else 'sinon
        cel.Offset(0, 5).Validation.Delete 'supprime la validation de données
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
End Sub
Le fichier:

 

Pièces jointes

Re : Bloquer des celulles non concernées par la validation des données

Merci beaucou Robert, cela marche nickel.

Merci aussi David, cela marche très bien aussi, d'ailleurs c'est à peu près cela que je cherchais à mettre comme formule dans ma liste de validation mais je ne l'avais pas écrite correctement.

Je voulais insérer un message d'erreur en plus, mais finalement pourquoi faire compliqué quand on peu faire simple. Je pense qu'au final ça va plus saoulé l'utilisateur que l'aider. Ca marche c'est le principale

Je choisirai une des deux solutions merci encore à vous 2.

@++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
401
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…