Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

masquer des cellules à l'impression

9 réponses
Avatar
AB
Bonjour à tous,
Est-il possible de masquer certaines cellules uniquement lors de
l'impression d'une feuille ?
Merci
AB

9 réponses

Avatar
Jacky
Bonsoir,

Dans le ThisWorkbook
Ici colonne C et D
'-----------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Columns("C:D").EntireColumn.Hidden = True
End Sub
'------------
Salutations
JJ


"AB" a écrit dans le message de news:
%
Bonjour à tous,
Est-il possible de masquer certaines cellules uniquement lors de
l'impression d'une feuille ?
Merci
AB



Avatar
AB
Bonjour Jacky,
Ca, ça marche pour les colonnes concernées.
Y aurait-il un moyen de sélectionner les cellules de son choix (par
sélection multiple, et quel que soit leur emplacement), et de les masquer à
l'impression ?
André

"Jacky" a écrit dans le message de news:

Bonsoir,

Dans le ThisWorkbook
Ici colonne C et D
'-----------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Columns("C:D").EntireColumn.Hidden = True
End Sub
'------------
Salutations
JJ


"AB" a écrit dans le message de news:
%
Bonjour à tous,
Est-il possible de masquer certaines cellules uniquement lors de
l'impression d'une feuille ?
Merci
AB







Avatar
Clément Marcotte
Salut André,

Pour des cellules dispersées, tu peux mettre temporairement la police de
caractères à blanc. (Pour autant que tu imprimes sur du papier blanc.


"AB" a écrit dans le message de news:

Bonjour Jacky,
Ca, ça marche pour les colonnes concernées.
Y aurait-il un moyen de sélectionner les cellules de son choix (par
sélection multiple, et quel que soit leur emplacement), et de les masquer
à l'impression ?
André

"Jacky" a écrit dans le message de news:

Bonsoir,

Dans le ThisWorkbook
Ici colonne C et D
'-----------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Columns("C:D").EntireColumn.Hidden = True
End Sub
'------------
Salutations
JJ


"AB" a écrit dans le message de news:
%
Bonjour à tous,
Est-il possible de masquer certaines cellules uniquement lors de
l'impression d'une feuille ?
Merci
AB











Avatar
Ange Ounis
Les masquer je ne pense pas mais tu peux aussi leur donner un format
personnalisé (;;;) qui en masque le contenu.

----------
Ange Ounis
----------

Bonjour Jacky,
Ca, ça marche pour les colonnes concernées.
Y aurait-il un moyen de sélectionner les cellules de son choix (par
sélection multiple, et quel que soit leur emplacement), et de les masquer à
l'impression ?
André

"Jacky" a écrit dans le message de news:


Bonsoir,

Dans le ThisWorkbook
Ici colonne C et D
'-----------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Columns("C:D").EntireColumn.Hidden = True
End Sub
'------------
Salutations
JJ


"AB" a écrit dans le message de news:
%

Bonjour à tous,
Est-il possible de masquer certaines cellules uniquement lors de
l'impression d'une feuille ?
Merci
AB











Avatar
AB
Salut Jacky,
Je ne vois pas ma réponse s'afficher, alors je la reposte :

Bonjour Jacky,
Ca, ça marche pour les colonnes concernées.
Y aurait-il un moyen de sélectionner les cellules de son choix (par
sélection multiple, et quel que soit leur emplacement), et de les masquer à
l'impression ?
André



"Jacky" a écrit dans le message de news:

Bonsoir,

Dans le ThisWorkbook
Ici colonne C et D
'-----------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Columns("C:D").EntireColumn.Hidden = True
End Sub
'------------
Salutations
JJ


"AB" a écrit dans le message de news:
%
Bonjour à tous,
Est-il possible de masquer certaines cellules uniquement lors de
l'impression d'une feuille ?
Merci
AB







Avatar
JB
Bonjour,


PJ :http://cjoint.com/?btkRFkd1ef

Solution1: Les cellules à masquer sont dans la macro

Sub ImprimeMasqué()
Dim temp(1000)
ligne = 1
Set champ = Range("B4:B5,C6:C7,D4:D5")
For Each c In champ
temp(ligne) = c.NumberFormat
ligne = ligne + 1
c.NumberFormat = ";;;"
Next c
ActiveSheet.PrintPreview
ligne = 1
For Each c In champ
c.NumberFormat = temp(ligne)
ligne = ligne + 1
Next c
End Sub

Solution2: On colorie en jaune (36)les cellules qui doivent être
masquées

Sub ImprimeMasqué2()
Dim temp(1000), temp2(1000)
ligne = 1
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 36 Then
temp(ligne) = c.NumberFormat
temp2(ligne) = c.Address
ligne = ligne + 1
c.NumberFormat = ";;;"
End If
Next c
ActiveSheet.PrintPreview
For i = 1 To ligne - 1
Range(temp2(i)).NumberFormat = temp(i)
Next i
End Sub

Cordialement JB
Avatar
AB
Bonsoir, JB

Merci de ton aide.
La solution 1 fonctionne, avec l'inconvénient de devoir adapter chaque fois
la macro au contexte (ie aux cellules concernées, qui peuvent changer d'une
feuille à l'autre).
La solution 2 ne fonctionne pas. Elle serait pourtant bien plus pratique.
En fait, il faudrait dans la solution 1 remplacer la ligne :
Set champ = Range("B4:B5,C6:C7,D4:D5")
Par une instruction qui placerait dans la variable "champ" la sélection en
cours.
Ca dépasse mes ridicules compétences en VBA...
Ou alors, j'ai raté quelque chose ?
André

"JB" a écrit dans le message de news:

Bonjour,


PJ :http://cjoint.com/?btkRFkd1ef

Solution1: Les cellules à masquer sont dans la macro

Sub ImprimeMasqué()
Dim temp(1000)
ligne = 1
Set champ = Range("B4:B5,C6:C7,D4:D5")
For Each c In champ
temp(ligne) = c.NumberFormat
ligne = ligne + 1
c.NumberFormat = ";;;"
Next c
ActiveSheet.PrintPreview
ligne = 1
For Each c In champ
c.NumberFormat = temp(ligne)
ligne = ligne + 1
Next c
End Sub

Solution2: On colorie en jaune (36)les cellules qui doivent être
masquées

Sub ImprimeMasqué2()
Dim temp(1000), temp2(1000)
ligne = 1
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 36 Then
temp(ligne) = c.NumberFormat
temp2(ligne) = c.Address
ligne = ligne + 1
c.NumberFormat = ";;;"
End If
Next c
ActiveSheet.PrintPreview
For i = 1 To ligne - 1
Range(temp2(i)).NumberFormat = temp(i)
Next i
End Sub

Cordialement JB
Avatar
JB
On sélectionne les zones à masquer:

http://cjoint.com/?btuvrGlNdZ

Sub ImprimeMasqué3()
Dim temp(1000)
ligne = 1
For Each c In Selection
temp(ligne) = c.NumberFormat
ligne = ligne + 1
c.NumberFormat = ";;;"
Next c
ActiveSheet.PrintPreview
ligne = 1
For Each c In Selection
c.NumberFormat = temp(ligne)
ligne = ligne + 1
Next c
End Sub

Cordialement JB
Avatar
AB
Excellent !
Ca marche parfaitement, et c'est vraiment pratique.
Un très grand merci.
Cordialement,
André

"JB" a écrit dans le message de news:

On sélectionne les zones à masquer:

http://cjoint.com/?btuvrGlNdZ

Sub ImprimeMasqué3()
Dim temp(1000)
ligne = 1
For Each c In Selection
temp(ligne) = c.NumberFormat
ligne = ligne + 1
c.NumberFormat = ";;;"
Next c
ActiveSheet.PrintPreview
ligne = 1
For Each c In Selection
c.NumberFormat = temp(ligne)
ligne = ligne + 1
Next c
End Sub

Cordialement JB