@ Theze :
C'est quoi qui déclenche l'appel de la fonction "ChampActif" durant le déroulement du code de la proc "MAJ_FORMAT", une procédure évènementielle dans une feuille ou le classeur ?
Aucune idée.
Tout ça pour moi c'est de l'hébreu.
Je ne pige pas grande chose à la programmation. Je glane des bout de code à gauche à droite et je les fais fonctionner entre eux de manière empirique... 
Tout ce que je peux te dire c'est :
* Sur la feuille, la première ligne du tableau comporte des filtres.
* Sur la ligne de filtre j'ai appliqué un formatage conditionnel qui colore en rouge vif le titre de la colonne ayant un filtre actif.
* Le test de cette condition se fait grâce à la fonction "champactif".
* Une première macro effectue une MAJ des données. Pendant ce traitement un section applique un formatage
1 2 3 4 5
| With FL2.Range("a" & derlig2 & ":AF" & derlig2)
.VerticalAlignment = xlCenter
.Borders.LineStyle = xlContinuous
.Font.Color = 0
End With |
* Après la mise à jour du fichier une macro "MAJ_FORMAT" ajuste le quadrillage des lignes pour faciliter la lecture.
* Si j’exécute pas à pas "MAJ_FORMAT" sans rien modifier ça s'arrête sans message d'erreur sur la ligne ".BorderAround Weight:=xlThin" dans
1 2 3 4
| With FL2.Range(Cells(premlig, 1), Cells(lig - 1, 32))
.BorderAround Weight:=xlThin
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With |
* Si je supprimer le formatage conditionnel ou si je supprime / renomme "champactif" alors "MAJ_FORMAT" se déroule sans problème.
En te répondant, je me suis demandé si ce n'était pas ".BorderAround Weight:=xlThin" qui posait problème alors j'ai essayé de mettre ".Borders.LineStyle = xlContinuous" (utilisé juste avant) à la place pour voir si le code plantait...
Et bien il plante aussi !
Dans le même ordre d'idée j'ai essayé de changer la façon dont je désignais le range en remplaçant
With "FL2.Range(Cells(premlig, 1), Cells(lig - 1, 32))
par
With FL2.Range("a" & premlig & ":AF" & lig - 1)
...
Ca plante aussi.
J'ai lu qq part que le formatage conditionnel cohabitait mal avec vba mais c'était plutôt technique et en anglais donc je n'ai pas saisi les subtilités.
Merci de ton aide en tout cas.
Partager