On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit o
k.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra t
esterle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aurait
-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer et
doncsans rajouter un bouton? En effet si par habitude l'utilisateur utili
seCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y pre
ndrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je n'
aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
En ajoutant Cancel=True après l'impression, il semble que ce soit o
k.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc <ns.jeanluc.laur...@free.fr.ns> wrote:
*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra t
est
er
le nom de la feuille pour le faire ou pas ;-)
Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aurait
-il
pas moyen d'obtenir la meme chose a partir du menu fichier/imprimer et
donc
sans rajouter un bouton? En effet si par habitude l'utilisateur utili
se
CTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup pour ton aide, mais je dois probablement mal m'y pre
nd
re
car je n'arrive pas au resultat souhaite. Peut-etre aussi que je n'
ai
pas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" <boisgont...@hotmail.com> said:
Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit o
k.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra t
esterle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aurait
-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer et
doncsans rajouter un bouton? En effet si par habitude l'utilisateur utili
seCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y pre
ndrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je n'
aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit o
k.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra t
esterle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur ait
-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer et
doncsans rajouter un bouton? En effet si par habitude l'utilisateur uti li
seCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p re
ndrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je n'
aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" <boisgont...@hotmail.com> said:
On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
En ajoutant Cancel=True après l'impression, il semble que ce soit o
k.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc <ns.jeanluc.laur...@free.fr.ns> wrote:
*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra t
est
er
le nom de la feuille pour le faire ou pas ;-)
Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur ait
-il
pas moyen d'obtenir la meme chose a partir du menu fichier/imprimer et
donc
sans rajouter un bouton? En effet si par habitude l'utilisateur uti li
se
CTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup pour ton aide, mais je dois probablement mal m'y p re
nd
re
car je n'arrive pas au resultat souhaite. Peut-etre aussi que je n'
ai
pas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" <boisgont...@hotmail.com> said:
Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit o
k.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra t
esterle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur ait
-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer et
doncsans rajouter un bouton? En effet si par habitude l'utilisateur uti li
seCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p re
ndrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je n'
aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M wrote:Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit
ok.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
testerle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
etdoncsans rajouter un bouton? En effet si par habitude l'utilisateur uti
liseCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
rendrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" <boisgont...@hotmail.com> said:
On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
En ajoutant Cancel=True après l'impression, il semble que ce soit
o
k.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc <ns.jeanluc.laur...@free.fr.ns> wrote:
*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
t
est
er
le nom de la feuille pour le faire ou pas ;-)
Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait
-il
pas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
et
donc
sans rajouter un bouton? En effet si par habitude l'utilisateur uti
li
se
CTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
re
nd
re
car je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'
ai
pas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" <boisgont...@hotmail.com> said:
Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
de
s messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M wrote:Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit
ok.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
testerle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
etdoncsans rajouter un bouton? En effet si par habitude l'utilisateur uti
liseCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
rendrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Pardon, l'erreur vient du fait que j'ai imprime sur une imprimante reglee par
defaut en noir et blanc... :-(((sisi c'est possible!!!
En fait tout fonctionne parfaitement. Merci beaucoup pour ton aide et ta
patience.
Par contre pourquoi ai-je perdu la fenetre de parametrage de l'impression
(quand CTRL+P l'imprimante imprime de suite)? Je ne la retrouve que si je
demande l'impression a partir de l'apercu avant impression. Bizarre, non?
Seulement sur ce classeur...
Merci encore.
Pierre.M
On 2007-03-06 20:55:31 +0100, "JB" said:Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M wrote:Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit
ok.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
testerle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
etdoncsans rajouter un bouton? En effet si par habitude l'utilisateur uti
liseCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
rendrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Pardon, l'erreur vient du fait que j'ai imprime sur une imprimante reglee par
defaut en noir et blanc... :-(((sisi c'est possible!!!
En fait tout fonctionne parfaitement. Merci beaucoup pour ton aide et ta
patience.
Par contre pourquoi ai-je perdu la fenetre de parametrage de l'impression
(quand CTRL+P l'imprimante imprime de suite)? Je ne la retrouve que si je
demande l'impression a partir de l'apercu avant impression. Bizarre, non?
Seulement sur ce classeur...
Merci encore.
Pierre.M
On 2007-03-06 20:55:31 +0100, "JB" <boisgontier@hotmail.com> said:
Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" <boisgont...@hotmail.com> said:
On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
En ajoutant Cancel=True après l'impression, il semble que ce soit
o
k.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc <ns.jeanluc.laur...@free.fr.ns> wrote:
*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
t
est
er
le nom de la feuille pour le faire ou pas ;-)
Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait
-il
pas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
et
donc
sans rajouter un bouton? En effet si par habitude l'utilisateur uti
li
se
CTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
re
nd
re
car je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'
ai
pas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" <boisgont...@hotmail.com> said:
Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
de
s messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Pardon, l'erreur vient du fait que j'ai imprime sur une imprimante reglee par
defaut en noir et blanc... :-(((sisi c'est possible!!!
En fait tout fonctionne parfaitement. Merci beaucoup pour ton aide et ta
patience.
Par contre pourquoi ai-je perdu la fenetre de parametrage de l'impression
(quand CTRL+P l'imprimante imprime de suite)? Je ne la retrouve que si je
demande l'impression a partir de l'apercu avant impression. Bizarre, non?
Seulement sur ce classeur...
Merci encore.
Pierre.M
On 2007-03-06 20:55:31 +0100, "JB" said:Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M wrote:Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit
ok.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
testerle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
etdoncsans rajouter un bouton? En effet si par habitude l'utilisateur uti
liseCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
rendrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
*Bonjour Pierre.M*,
Losque que tu demande une impréssion, excel execute l'événement
Workbook_BeforePrint puis soit imprime (si tu as cliqué sur l'icone
d'impression) soit ouvre la boite de dialogue de choix d'imprimante et
de reglage (Ctrl+P ou Fichier/Imprimer).
Dans ton cas, pour faire marcher la suppression de couleur, JB demande
une impression dans cet evenement et avant de finir, dit à l'evenement
de ne pas imprimer : Cancel = TruePardon, l'erreur vient du fait que j'ai imprime sur une imprimante
reglee par defaut en noir et blanc... :-(((sisi c'est possible!!!
En fait tout fonctionne parfaitement. Merci beaucoup pour ton aide et
ta patience.
Par contre pourquoi ai-je perdu la fenetre de parametrage de
l'impression (quand CTRL+P l'imprimante imprime de suite)? Je ne la
retrouve que si je demande l'impression a partir de l'apercu avant
impression. Bizarre, non? Seulement sur ce classeur...
Merci encore.
Pierre.M
On 2007-03-06 20:55:31 +0100, "JB" said:Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M wrote:Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit
ok.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
testerle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
etdoncsans rajouter un bouton? En effet si par habitude l'utilisateur uti
liseCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
rendrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
*Bonjour Pierre.M*,
Losque que tu demande une impréssion, excel execute l'événement
Workbook_BeforePrint puis soit imprime (si tu as cliqué sur l'icone
d'impression) soit ouvre la boite de dialogue de choix d'imprimante et
de reglage (Ctrl+P ou Fichier/Imprimer).
Dans ton cas, pour faire marcher la suppression de couleur, JB demande
une impression dans cet evenement et avant de finir, dit à l'evenement
de ne pas imprimer : Cancel = True
Pardon, l'erreur vient du fait que j'ai imprime sur une imprimante
reglee par defaut en noir et blanc... :-(((sisi c'est possible!!!
En fait tout fonctionne parfaitement. Merci beaucoup pour ton aide et
ta patience.
Par contre pourquoi ai-je perdu la fenetre de parametrage de
l'impression (quand CTRL+P l'imprimante imprime de suite)? Je ne la
retrouve que si je demande l'impression a partir de l'apercu avant
impression. Bizarre, non? Seulement sur ce classeur...
Merci encore.
Pierre.M
On 2007-03-06 20:55:31 +0100, "JB" <boisgontier@hotmail.com> said:
Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" <boisgont...@hotmail.com> said:
On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
En ajoutant Cancel=True après l'impression, il semble que ce soit
o
k.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc <ns.jeanluc.laur...@free.fr.ns> wrote:
*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
t
est
er
le nom de la feuille pour le faire ou pas ;-)
Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait
-il
pas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
et
donc
sans rajouter un bouton? En effet si par habitude l'utilisateur uti
li
se
CTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" <boisgont...@hotmail.com> said:
http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M <prenom.mu...@wanadoo.fr> wrote:
Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
re
nd
re
car je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'
ai
pas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" <boisgont...@hotmail.com> said:
Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
de
s messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
*Bonjour Pierre.M*,
Losque que tu demande une impréssion, excel execute l'événement
Workbook_BeforePrint puis soit imprime (si tu as cliqué sur l'icone
d'impression) soit ouvre la boite de dialogue de choix d'imprimante et
de reglage (Ctrl+P ou Fichier/Imprimer).
Dans ton cas, pour faire marcher la suppression de couleur, JB demande
une impression dans cet evenement et avant de finir, dit à l'evenement
de ne pas imprimer : Cancel = TruePardon, l'erreur vient du fait que j'ai imprime sur une imprimante
reglee par defaut en noir et blanc... :-(((sisi c'est possible!!!
En fait tout fonctionne parfaitement. Merci beaucoup pour ton aide et
ta patience.
Par contre pourquoi ai-je perdu la fenetre de parametrage de
l'impression (quand CTRL+P l'imprimante imprime de suite)? Je ne la
retrouve que si je demande l'impression a partir de l'apercu avant
impression. Bizarre, non? Seulement sur ce classeur...
Merci encore.
Pierre.M
On 2007-03-06 20:55:31 +0100, "JB" said:Sur mon poste, seul le rouge est supprimé
http://cjoint.com/?dgu148wxUt
JB
On 6 mar, 20:19, Pierre.M wrote:Euhhhh, je ne suis pas sur. Chez moi ca continue a supprimer toutes les
couleurs... J'avais du jaune et du rouge, il devrait rester le jaune,
non? Je m'y suis mal pris encore une fois?
Merci beaucoup.
Pierre.M
On 2007-03-06 19:36:33 +0100, "JB" said:On annule le rouge:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 3 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
jb
On 6 mar, 18:27, Pierre.M wrote:Merci beaucoup a tous les 2. Ca fonctionne parfaitement!
Serait-il neanmoins possible de modifier le code pour choisir la
couleur de fond qu'on ne desire pas imprimer? (disons que j'ai des
fonds rouges, oranges et jaunes et qu'a l'impression je ne veux pas les
jaunes). C'est plus par curiosite, pour apprendre...
Merci encore pour votre aide.
Pierre.M
On 2007-03-06 08:20:53 +0100, "JB" said:En ajoutant Cancel=True après l'impression, il semble que ce soit
ok.Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code deJBdans l'événement BeforePrint du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub
Par contre, çà le fera pour toutes les feuille. Sinon, il faudra
testerle nom de la feuille pour le faire ou pas ;-)Ok, si je passe par le bouton "imprime" ca fonctionne, mais n'y aur
ait-ilpas moyen d'obtenir la meme chose a partir du menu fichier/imprimer
etdoncsans rajouter un bouton? En effet si par habitude l'utilisateur uti
liseCTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" said:http://cjoint.com/?dfxuyRCt8h
JB
On 5 mar, 23:02, Pierre.M wrote:Merci beaucoup pour ton aide, mais je dois probablement mal m'y p
rendrecar je n'arrive pas au resultat souhaite. Peut-etre aussi que je
n'aipas su faire comprendre mon besoin.
Pourrais-tu me preciser a quel endroit coller le code (j'ai essaye
diverses solutions, mais sans effets...)?
Pierre.M
On 2007-03-05 22:02:03 +0100, "JB" said:Sub imprime()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone 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.PrintPreview ' ou ActiveSheet.PrintOut
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -- Afficher le texte des messages précédents -- Masquer le texte de
s messages précédents -
- Afficher le texte des messages précédents -
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ? Tu
semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ? Tu
semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ? Tu
semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression
? Tu semblais dire plus haut que certaines lignes etaient
supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Pierre.M avait soumis l'idée :
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression
? Tu semblais dire plus haut que certaines lignes etaient
supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression
? Tu semblais dire plus haut que certaines lignes etaient
supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Salut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le dialogue
d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc said:Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ?
Tu semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Salut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le dialogue
d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc <ns.jeanluc.laurent@free.fr.ns> said:
Pierre.M avait soumis l'idée :
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ?
Tu semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Salut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le dialogue
d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc said:Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ?
Tu semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
*Bonjour Pierre.M*,
If Msgbox("Voulez vous un aperçu ?", VbYesNo) = VbYes Then
Application.Dialogs(xlDialogPrintPreview).Show
Else
Application.Dialogs(xlDialogPrint).Show
End IfSalut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le
dialogue d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc said:Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression
? Tu semblais dire plus haut que certaines lignes etaient
supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
*Bonjour Pierre.M*,
If Msgbox("Voulez vous un aperçu ?", VbYesNo) = VbYes Then
Application.Dialogs(xlDialogPrintPreview).Show
Else
Application.Dialogs(xlDialogPrint).Show
End If
Salut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le
dialogue d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc <ns.jeanluc.laurent@free.fr.ns> said:
Pierre.M avait soumis l'idée :
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression
? Tu semblais dire plus haut que certaines lignes etaient
supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
*Bonjour Pierre.M*,
If Msgbox("Voulez vous un aperçu ?", VbYesNo) = VbYes Then
Application.Dialogs(xlDialogPrintPreview).Show
Else
Application.Dialogs(xlDialogPrint).Show
End IfSalut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le
dialogue d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc said:Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression
? Tu semblais dire plus haut que certaines lignes etaient
supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Merci beaucoup JLuc pour ton aide.
Je vais donc devoir me passer de previsualisation, puisque apparement je ne
peux pas avoir les 2 en meme temps. Mais mon projet avance quand meme!
Le test que je t'ai mis ne fonctionne pas ?
Merci encore et bonne soiree.
Pierre.M
On 2007-03-07 23:29:29 +0100, JLuc said:*Bonjour Pierre.M*,
If Msgbox("Voulez vous un aperçu ?", VbYesNo) = VbYes Then
Application.Dialogs(xlDialogPrintPreview).Show
Else
Application.Dialogs(xlDialogPrint).Show
End IfSalut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le
dialogue d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc said:Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ?
Tu semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Merci beaucoup JLuc pour ton aide.
Je vais donc devoir me passer de previsualisation, puisque apparement je ne
peux pas avoir les 2 en meme temps. Mais mon projet avance quand meme!
Le test que je t'ai mis ne fonctionne pas ?
Merci encore et bonne soiree.
Pierre.M
On 2007-03-07 23:29:29 +0100, JLuc <ns.jeanluc.laurent@free.fr.ns> said:
*Bonjour Pierre.M*,
If Msgbox("Voulez vous un aperçu ?", VbYesNo) = VbYes Then
Application.Dialogs(xlDialogPrintPreview).Show
Else
Application.Dialogs(xlDialogPrint).Show
End If
Salut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le
dialogue d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc <ns.jeanluc.laurent@free.fr.ns> said:
Pierre.M avait soumis l'idée :
Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ?
Tu semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut
Merci beaucoup JLuc pour ton aide.
Je vais donc devoir me passer de previsualisation, puisque apparement je ne
peux pas avoir les 2 en meme temps. Mais mon projet avance quand meme!
Le test que je t'ai mis ne fonctionne pas ?
Merci encore et bonne soiree.
Pierre.M
On 2007-03-07 23:29:29 +0100, JLuc said:*Bonjour Pierre.M*,
If Msgbox("Voulez vous un aperçu ?", VbYesNo) = VbYes Then
Application.Dialogs(xlDialogPrintPreview).Show
Else
Application.Dialogs(xlDialogPrint).Show
End IfSalut JLuc,
Merci pour le conseil, ca fonctionne comme espere.
Par contre ce coup-ci je perds l'apercu avant impression (c'est le
dialogue d'impression qui s'ouvre a la place...).
Encore une autre bonne idee?
Bonne soiree.
Pierre.M
On 2007-03-07 17:15:21 +0100, JLuc said:Pierre.M avait soumis l'idée :Ok, je voyais pas ca comme ca...
Y a t il une solution pour retrouver la boite de dialogue d'impression ?
Tu semblais dire plus haut que certaines lignes etaient supprimables...
Merci a toi aussi.
Pierre.M
Essaie :
Application.Dialogs(xlDialogPrint).Show
au lieu de :
ActiveSheet.PrintOut