Re : Conserver la mise en page d'une feuille
Merci pour ta réponse.
Je travaille sur des données confidentielles, je ne peux donc pas vous envoyer mon fichier à moins de modifier toutes les données qu'il contient. Comme il contient beaucoup de lignes...
En gros :
Dans mon fichier de base, mis en forme comme je le veux j'ai :
- la premiere ligne en gras
- j'execute une macro qui met a jour toutes les données contenues dans mon fichier, y compris la première ligne (depuis une table access). Le code est le suivant :
Selection.QueryTable.Refresh BackgroundQuery:=False
- j'execute une macro qui change la couleur de certaines lignes et met le texte de certaines cases en rouge. Avec ce code :
Tabl = Split((Range("A1").End(xlDown).Address), "$")
DerCell = Val(Tabl(2))
I = 2
Do
ColALi = "AL" & I
ColBEi = "BE" & I
ColBFi = "BF" & I
'If AvgQCurr <> 0 Then the line is put in yellow
If (Range(ColALi)) <> 0 Then
Range(ColALi).EntireRow.Interior.Color = RGB(255, 255, 153)
End If
' If OUT FG < RunRate FG Then Out FG text is red
If ((Range(ColBEi).Value) < (Range(ColBIi).Value)) Then
Range(ColBEi).Select
With Selection.Font
.Bold = True
.ColorIndex = 3
End With
End If
I = I + 1
Loop Until I = DerCell
- j'execute une macro qui remplace toutes mes cases vides par zero.
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:="", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Apres ces etapes, ma premiere ligne redevient "normale", sans gras et dans la police de base.
Je ne sais pas quelle action modifie ce format, si c'est la mise a jour de la table ou le reste.
Pour l'instant, j'ai enregistré une macro dans laquelle je remet en forme l'entete de mon tableau (couleurs, gras...), et je la réexecute à chaque fois, apres avoir fait tous les traitements précédents. Mais n'y aurait-il pas un moyen d'eviter l'execution de ceci, en ajoutant probablement un bout de code au debut de la macro, qui indique de conserver le format d'origine?
Je ne sais pas si je suis assez claire?