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 ?
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
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.