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

Mise en forme de cellule (liste) à appliquer sur toute la ligne

  • Initiateur de la discussion Initiateur de la discussion Ctrl-Alt-Suppr
  • 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 !

C

Ctrl-Alt-Suppr

Guest
Bonjour,

Niveau débutant ,,, je tente de trouver sur la toile ce dont j'ai besoin :
Appliquer la mise en forme d'une cellule (à choix multiples) à toute la ligne correspondante,
Le fichier lié au poste sera sans doute + parlant que mes explications, mais en gros :

- je définis différentes ETAPES
- j'applique un format spécifique à chaque cellule
- dans un autre onglet, je définis un TABLEAU
- j'ai repris un code VBA qui "va chercher" le formatage couleur de chaque étape

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect([TABLEAU], Target) Is Nothing Then
   On Error Resume Next
   Target.Interior.ColorIndex = [ETAPES].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
  End If
End Sub

Questions :
- comment obtenir un formatage complet (italique, gras …)
- comment l'appliquer à l'ensemble de la ligne du TABLEAU
- j'ai l'impression que ça fonctionne en 256 couleurs ou un truc du genre … une idée ?

Un grand merci par avance.
 

Pièces jointes

Re : Mise en forme de cellule (liste) à appliquer sur toute la ligne

Bonjour Ctrl-Alt-Suppr

Une proposition commentée:

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim T As Range
 If Not Intersect([TABLEAU], Target) Is Nothing Then
   On Error Resume Next
   'On déclare T comme la cellulecorrespondente dans la liste Etapes
   Set T = [ETAPES].Find(Target, LookAt:=xlWhole)
   'Avec la cellule modifiée (agrandie sur une ligne et de 5 colonnes)
    With Target.Resize(1, 5)
        'on recopie tout ce que l'on veux
        'Couleur
        .Interior.ColorIndex = T.Interior.ColorIndex
        'Police gras
        .Font.Bold = T.Font.Bold
        'Police italique
        .Font.Italic = T.Font.Italic
        'Etc....
    End With
  End If
End Sub

Cordialement
 
Re : Mise en forme de cellule (liste) à appliquer sur toute la ligne

Merci, c'est vraiment pas mal
... j'ai presque tout compris au point de savoir le refaire (presque ^^) !

Un petit complément, si ce n'est pas trop demander.
Dans mon fichier définitif, les ETAPES sont dans la 2ème colonne
Comment faire pour appliquer la mise en forme à partir de la colonne d'avant
(en clair une sorte de : Target.Resize(1, de -1 à +56) ) dans mon futur fichier
J'ai tenté de glisser un Target.Offset(0, -1) ci et là, mais sans succès.
 
Re : Mise en forme de cellule (liste) à appliquer sur toute la ligne

Re
On ne diras jamais assez que le fichier exemple doit être re-pré-sen-ta-tif du problème 🙄

Pour ta nouvelle demande:
Il faut décaler (Offset) de 0 ligne et - 1 colonne et ensuite redimentionner de 1 ligne et 57 colonnes soit :
VB:
 With Target.Offset(0,-1).Resize(1, 57)

Cordialement
 
Re : Mise en forme de cellule (liste) à appliquer sur toute la ligne

Génial ça fonctionne !
J'aurais dû trouvé moi-même la p'tite modif, mais bon servi sur un plateau c'est encore mieux
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…