VBA : appliquer MFC à un texte appartenant à une plage nommée

Bonjour à tous,

Ca fait qques heures que je bug sur un sujet.

J'ai un tableau planning dans lequel il y a plusieurs feuilles :

> Feuille "Paramètres"

> Feuilles de "S01" à "S52"

Dans les feuilles "S*" il y a des listes déroulantes (noms/prénoms) de B9:B109 avec pas de 4, liées à une plage de cellules qui est nommée "XXX" dans la feuille "Paramètres"

Je souhaiterais par une macro :

Si la valeur texte dans B9:B109 pas de 4, appartient à la plage nommée "XXX" alors appliquer MFC

J'espère que les explications sont bien claires.

Merci d'avance pour votre intérêt.

Bonjour,

A-priori :

=NB.SI(XXX;B9)

La plage d'application étant B9:B109.

Cordialement.

Bonjour MFerrand,

Je te remercie pour ta réponse cependant je souhaiterais passer par une macro.

Comme c'est un tableau utilisé par une personne qui ne connait pas trop excel, j'ai peur qu'il fasse des copiés/collés de cellules avec mise en forme et que le classeur soit surchargé.

Cdlt

Re,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("B9:B109")) Is Nothing Then
        Application.CutCopyMode = False
    End If
End Sub

Tu places cette procédure dans le module de la feuille, et on ne pourra copier ni coller dans la plage visée.

Cordialement.

Je te transmets ci-dessous le tableau pour mieux visualiser le principe

L'inconvénient de verrouiller le copier/coller de la colonne B est que d'une semaine à l'autre le nombre de poseurs varient et que si j'en ai plus, il n'est pas possible de copie toute la ligne d'un poseur

De plus je souhaiterais que si la valeur texte de "XXX" s'affiche elle colore la cellule concernée + les 2 du dessous.

d'une semaine à l'autre le nombre de poseurs varient et que si j'en ai plus, il n'est pas possible de copie toute la ligne d'un poseur

Pas compris ce que tu veux dire... et je ne vois pas le rapport avec la question.

Cordialement.

Pour expliquer le raisonnement suivant

d'une semaine à l'autre le nombre de poseurs varient et que si j'en ai plus, il n'est pas possible de copier toute la ligne d'un poseur

Ce tableau est actuellement à la semaine "S02" défini pour 15 poseurs, sachant que les valeurs de la liste déroulante correspondent au nom d'un poseur.

Si jamais en semaine "S03", il y a 16 poseurs. La macro que tu as transmis qui permet de verrouiller le copier/coller de la plage B9:B109, bride le tableau pour l'ajout d'un poseur supplémentaire. Par principe où pour ajouter un poseur je sélectionne les lignes 69 à 72 pour les coller en ligne 73.

Il n'y a pas de rapport direct à la question juste un conflit avec le fonctionnement du tableau.

J'espère que l'explication est compréhensible

Il vaudrait mieux sortir de tels bricolages au profit de méthodes plus rigoureuses et fiables. Un fois qu'un tableau est construit, quelle que soit la façon de le construire, il est mis à la disposition des utilisateurs, qui ont à s'en servir selon des règles prédéfinies (que l'on contrôle si nécessaire), mais il n'ont pas à réviser la construction !

Si tu définis une plage A9:A109, cette plage est définie lors de la construction et y reçoit tes listes déroulantes... !

Cordialement.

Ok ça marche merci du conseil je sais comment procéder pour permettre d'afficher ou masquer les lignes voulues simplement.

Cependant, saurais-tu me dire comment appliquer la MFC à la valeur concernée + les 2 cellules du dessous. Ex : Si B9 = valeur de "XXX" alors MFC de B9 à B12 ?

La solution la plus simple est d'élargir ta fusion de 2 lignes à 4 lignes !

Cordialement.

Les 2 lignes du dessous sont destinées à des commentaires.

Alors, formule MFC :

=NB.SI(XXX;INDIRECT("B"&LIGNE()-MOD(LIGNE()-9;4)))

Cordialement.

Parfait je te remercie, ça fonctionne très bien. Merci encore

Rechercher des sujets similaires à "vba appliquer mfc texte appartenant plage nommee"