Vérification d'une plage de cellule par une macro

LeZéro

XLDnaute Nouveau
D'abord bonjour à tous, je me présente LeZéro, stagiaire débutant sur Excel et super débutant en VBA ! :p

Entrons dans le vif du sujet. On me demande de protéger une plage de cellule de la manière suivante :

Pour chaque ligne (1403 sur cette plage) il faut que la valeur X ne soit présente au maximum q'une fois (sur la ligne).
que la valeur S ne soit pas présente si la valeur X n'est pas déjà sur la ligne.

Pour éviter les doublons (soit la première condition), j'ai réussi à trouver une solution avec la validation des données personnalisée et la formule "NB.SI". Or, celle ci ne marche plus lorsqu'il s'agit de la faire fonctionner en enregistrant une macro avec cette manip (erreur 1004). Mais le problème c'est que je ne me vois pas répéter l'opération pour chacune des 1403 lignes de cette plage : il faut faire une boucle (enfin je crois).

Pour la deuxième condition, après avoir trimé sur les moteurs de recherches et autres forums, je ne trouve rien.

Votre aide me serait extrêmement précieuse ! Merci d'avance.
 

pierrejean

XLDnaute Barbatruc
Re : Vérification d'une plage de cellule par une macro

Re

Je reviens a l'instant

Le code doit etre mis dans le module de la feuille concernée
pour cela :
dans l'editeur Vba , cliquer sur le nom de la feuille dans Vba project
Ensuit derouler la liste de gauche , choisir Worksheet puis dans la liste de droite choisir Change
Copier le coeur de la macro et le coller apres
Private Sub Worksheet_Change(ByVal Target As Range)

Je jette un oeil sur le fichier

Edit: Voila dans ton fichier
Tu remarqueras que j'ai adapté les chiffres reperant les numeros de colonne
 

Pièces jointes

  • lezero_pierrejean.zip
    7.7 KB · Affichages: 12
Dernière édition:

LeZéro

XLDnaute Nouveau
Re : Vérification d'une plage de cellule par une macro

Bonjour à tous !

Pierre Jean, ta macro est presque arrivée à boût de tous mes tracas ^^. Mais apparement les menus déroulants proposant X et S sur cette plage de cellule affectent la condition sur l'impossibilité d'avoir 2 X sur la même ligne.
C'est en tout cas ce que j'ai remarqué en essayant la même Validation des données/Liste (X ; S) sur notre échantillon.

Voyez plutôt : les S ne peuvent plus s'insérer nulle part, tandis qu'une rangée de X pourrait occuper une ligne entière.
 

Pièces jointes

  • pierrejean2.xls
    26.5 KB · Affichages: 44
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Vérification d'une plage de cellule par une macro

Bonjour à tous,

LeZéro : "X" n'est pas la même chose que "X "
évite les espaces dans ta liste déroulante, ça changera beaucoup de choses
d'autre part, la macro de PierreJean teste les colonnes 2 à 36 (B à AJ) et tu as fait un tableau de A à AJ, il faut corriger d'un côté ou l'autre...
 

Discussions similaires

Statistiques des forums

Discussions
312 672
Messages
2 090 775
Membres
104 663
dernier inscrit
Girondins43