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

JunFan

XLDnaute Junior
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

  • Jun_Fan.xls
    15 KB · Affichages: 47
  • Jun_Fan.xls
    15 KB · Affichages: 49
  • Jun_Fan.xls
    15 KB · Affichages: 50
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
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

  • JunFan_v01.xls
    23 KB · Affichages: 35

david84

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

Bonjour,
sans VBA, peut-être comme cela.
A+
 

Pièces jointes

  • Jun_Fan.xls
    24.5 KB · Affichages: 40
  • Jun_Fan.xls
    24.5 KB · Affichages: 42
  • Jun_Fan.xls
    24.5 KB · Affichages: 40

JunFan

XLDnaute Junior
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.

@++
 

Discussions similaires

Réponses
8
Affichages
439

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan