Supprimer couleur lors de l'impression Excel 2017

Bonjour, j'ai actuellement une macro qui me permet de supprimer certaines couleurs lors de l'impression.

Voici la macro:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Application.EnableEvents = False

Dim temp1(), temp2()

For Each c In ActiveSheet.UsedRange

If c.Interior.ColorIndex = 16 Then

n = n + 1

ReDim Preserve temp1(1 To n)

ReDim Preserve temp2(1 To n)

temp1(n) = c.Address

temp2(n) = c.Interior.ColorIndex

c.Interior.ColorIndex = xlNone

End If

Next c

ActiveSheet.PrintOut ' ou ActiveSheet.Printpreview

Cancel = True

For i = 1 To n

Range(temp1(i)).Interior.ColorIndex = temp2(i)

Next i

Application.EnableEvents = True

End Sub

Elle me permet de supprimer une certaine nuance de gris que j'ai choisi. Cette macro fonctionne très bien sur Excel 2007 mais impossible de la faire fonctionner sur excel 2017. Savez vous pourquoi?

Merci d'avance

Cordialement

Bonjour,

Avez-vous essayé en modifiant If c.Interior.ColorIndex = 16 Then

par

If c.Interior.Color = RGB(Red, Green, Blue) Then

pour connaitre la couleur de votre cellule

Sub test()
TheColor = ActiveCell.Interior.Color

Red = Int(TheColor Mod 256)
Green = Int((TheColor Mod 65536) / 256)
Blue = Int(TheColor / 65536)

MsgBox "Color " & TheColor & Chr(10) & _
"RED : " & Red & Chr(10) & _
"GREEN : " & Green & Chr(10) & _
"BLUE : " & Blue
End Sub

Bonjour,

Cela ne fonctionne pas, c'est comme si la macro ne se lancait pas :/

Cela ne fonctionne pas, c'est comme si la macro ne se lancait pas

quel macro ne se lance pas ?

Lorsque je lance l'impression, la couleur que je veux supprimer reste

pouvez-vous montrer votre macro modifier ?

Voici la macro

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Application.EnableEvents = False

Dim temp1(), temp2()

For Each c In ActiveSheet.UsedRange

If c.Interior.Color = RGB(128, 128, 128) Then

n = n + 1

ReDim Preserve temp1(1 To n)

ReDim Preserve temp2(1 To n)

temp1(n) = c.Address

temp2(n) = c.Interior.ColorIndex

c.Interior.ColorIndex = xlNone

End If

Next c

ActiveSheet.PrintOut ' ou ActiveSheet.Printpreview

Cancel = True

For i = 1 To n

Range(temp1(i)).Interior.ColorIndex = temp2(i)

Next i

Application.EnableEvents = True

End Sub

Bonjour,

Essaie ainsi.

Regarde l'aide Excel sur Workbook_BeforePrint.

Cdlt.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range
Dim temp1() As String, temp2() As Long
Dim n As Long, i As Long

    For Each c In ActiveSheet.UsedRange
        If c.Interior.Color = RGB(128, 128, 128) Then
            n = n + 1
            ReDim Preserve temp1(1 To n)
            ReDim Preserve temp2(1 To n)
            temp1(n) = c.Address
            temp2(n) = c.Interior.Color
            c.Interior.Color = xlNone
        End If
    Next c

    ActiveSheet.PrintOut preview:=True

    For i = 1 To n
        Range(temp1(i)).Interior.Color = temp2(i)
    Next i

End Sub
Rechercher des sujets similaires à "supprimer couleur lors impression 2017"