Bonsoir tout le monde,
Un petit soucis a partager avec vous:
J'ai cree un formulaire style facture et pour simplifier son
remplissage j'aimerais mettre en couleur le fond des cellules
susceptibles d'etre remplies par l'utilisateur. Ca je sais faire ;-)
Y a t il un moyen pour que cette couleur de fond n'apparaisse pas a
l'impression (sans passer par une impression noir & blanc- il y a des
logos en couleur et d'autres trucs...)? L'utilisateur utilise le
dialogue d'impression standart d'excel, il ne doit donc pas avoir a
intervenir dans le processus.
Les MFC ne conviennent pas car toutes les cellules en couleur ne sont
pas forcement utilisees.
J'ai deja du VBA dans le formulaire...
Merci a tous pour votre aide qui m'a deja souvent depanne.
Bonne soiree.
Pierre.M
Bonsoir tout le monde,
Un petit soucis a partager avec vous:
J'ai cree un formulaire style facture et pour simplifier son
remplissage j'aimerais mettre en couleur le fond des cellules
susceptibles d'etre remplies par l'utilisateur. Ca je sais faire ;-)
Y a t il un moyen pour que cette couleur de fond n'apparaisse pas a
l'impression (sans passer par une impression noir & blanc- il y a des
logos en couleur et d'autres trucs...)? L'utilisateur utilise le
dialogue d'impression standart d'excel, il ne doit donc pas avoir a
intervenir dans le processus.
Les MFC ne conviennent pas car toutes les cellules en couleur ne sont
pas forcement utilisees.
J'ai deja du VBA dans le formulaire...
Merci a tous pour votre aide qui m'a deja souvent depanne.
Bonne soiree.
Pierre.M
Bonsoir tout le monde,
Un petit soucis a partager avec vous:
J'ai cree un formulaire style facture et pour simplifier son
remplissage j'aimerais mettre en couleur le fond des cellules
susceptibles d'etre remplies par l'utilisateur. Ca je sais faire ;-)
Y a t il un moyen pour que cette couleur de fond n'apparaisse pas a
l'impression (sans passer par une impression noir & blanc- il y a des
logos en couleur et d'autres trucs...)? L'utilisateur utilise le
dialogue d'impression standart d'excel, il ne doit donc pas avoir a
intervenir dans le processus.
Les MFC ne conviennent pas car toutes les cellules en couleur ne sont
pas forcement utilisees.
J'ai deja du VBA dans le formulaire...
Merci a tous pour votre aide qui m'a deja souvent depanne.
Bonne soiree.
Pierre.M
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
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
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
Merci beaucoup pour ton aide, mais je dois probablement mal m'y prendre
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" 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 -
Merci beaucoup pour ton aide, mais je dois probablement mal m'y prendre
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 -
Merci beaucoup pour ton aide, mais je dois probablement mal m'y prendre
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" 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 -
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 prendre
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" 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 -
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 prendre
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 -
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 prendre
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" 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 -
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 utilise
CTRL+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 prendre
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" 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 -
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 utilise
CTRL+P il se retrouve avec les couleurs de fond...
Merci encore.
Pierre.M
On 2007-03-05 23:20:53 +0100, "JB" <boisgontier@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 prendre
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 -
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 utilise
CTRL+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 prendre
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" 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 -
*Bonjour Pierre.M*,
En mettant le code de JB dans 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 test 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 utilise
CTRL+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 prend 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" 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 -
*Bonjour Pierre.M*,
En mettant le code de JB dans 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 test 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 utilise
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 prend 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 -
*Bonjour Pierre.M*,
En mettant le code de JB dans 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 test 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 utilise
CTRL+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 prend 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" 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 -
*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 test 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 utilise
CTRL+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 prend 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" 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 -
*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 test 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 utilise
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 prend 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 -
*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 test 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 utilise
CTRL+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 prend 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" 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 -
Bonjour,
J'avais essayé mais l'état est imprimé 2 fois .
ActiveSheet.PrintPreview ' ou ActiveSheet.PrintOut
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code de JB dans 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 tester
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 utilise
CTRL+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 prendre
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" 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 -
Bonjour,
J'avais essayé mais l'état est imprimé 2 fois .
ActiveSheet.PrintPreview ' ou ActiveSheet.PrintOut
JB
On 6 mar, 07:00, JLuc <ns.jeanluc.laur...@free.fr.ns> wrote:
*Bonjour Pierre.M*,
En mettant le code de JB dans 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 tester
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 utilise
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 prendre
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 -
Bonjour,
J'avais essayé mais l'état est imprimé 2 fois .
ActiveSheet.PrintPreview ' ou ActiveSheet.PrintOut
JB
On 6 mar, 07:00, JLuc wrote:*Bonjour Pierre.M*,
En mettant le code de JB dans 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 tester
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 utilise
CTRL+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 prendre
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" 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 -
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 test
erle 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 utilise
CTRL+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 prend
recar 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" 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 -
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 <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 test
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 utilise
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 prend
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 -
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 test
erle 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 utilise
CTRL+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 prend
recar 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" 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 -
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 est
erle 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 se
CTRL+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 nd
recar 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" 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 -
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 -
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 est
erle 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 se
CTRL+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 nd
recar 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" 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 -