Bonjour à tous,
je reviens vers vous quelque pour un nouveau problème.
J'ai besoin de formater des lignes selon leurs "niveaux" et qu'elles possèdent des filles ou non (une arborescence en gros).
Côté conditions et tout, ça marche. Les lignes sont bien reconnues comme ils faut.
Côté formatage... Ca devient plus drôle. En effet, les propriétés de formatages bloquent sans raison apparentes. J'essaye de contourner les problèmes avec des solutions plus ou moins propres, mais là je bloque sur la propriété HorizontalAlignment. Celle-ci refuse de fonctionner malgré tous mes essais. J'ai tenté d'utiliser les constantes XLDirection (XlLeft, XlCenter), les valeurs (-4108, -4131), différents noms de constantes (XlToLeft, XlHAlignLeft)... Toujours et encore erreur 1004.
Je vous fournit ma méthode :
Je précise que la méthode se trouve dans le code de la feuille traitée et qu'elle est de plus active.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Sub FormatOffre(ByVal ligne As Integer) Dim couleurfond(4) As Integer Dim textegras(4) As Boolean Dim orientationtexte(4) As XlDirection couleurfond(0) = couleurfond(1) = 6 couleurfond(2) = 34 couleurfond(3) = 40 textegras(0) = textegras(1) = True textegras(2) = textegras(3) = False orientationtexte(0) = orientationtexte(1) = xlCenter orientationtexte(2) = orientationtexte(3) = xlLeft niveau = Cells(ligne, 1).Value 'zone = Range("B" & ligne, "I" & ligne) 'La propriété colorindex bug avec le range (pourquoi ?) donc 'j'ai remplacé zone par une boucle sur les cellules. For i = 2 To 9 Cells(ligne, i).Interior.ColorIndex = couleurfond(niveau - 1) Cells(ligne, i).Font.Bold = textegras(niveau - 1) Next MsgBox "fin boucle" 'et là, ça bug. Magie. Cells(ligne, 3).HorizontalAlignment = orientationtexte(niveau - 1) MsgBox "fin application format ligne" With Cells(ligne - 1, 2) If niveau < Cells(ligne + 1, 1).Value Then .Font.ColorIndex = .Interior.ColorIndex .Font.Bold = True Else .Font.ColorIndex = 1 End If End With End Sub
Merci d'avance aux génies qui trouveront l'erreur![]()
Partager