Tableaux invisibles selon une date

Bonjour à tous,

Dans chaque page à imprimer, j’ai trois tableaux désignés pas des dates.

J’incrémente la date en I1 et J1 pour changer les dates des journées.

J'aimerais que lorsque la cellule I1 est égal au 31/12/2012, seul le tableau B5:G9 soit visible parce qu'il représente le dernier jour du mois de décembre (Mois en cours).

Les deux autres tableaux en bas, à savoir le B11:G15 et le B17:G21, qui représentent les deux premiers jours du mois suivant, devront être invisibles.

Merci.

Bonjour

Fini les formules, on commence les macros

A tester

Bonjour,

si ce sont des pages à imprimer, je suppose que tu veux les masquer pour

éviter qu'elles n'apparaissent lors de l'impression.

Je te propose d'affecter la macro suivante au bouton imprimer:

Sub Impression()

ActiveSheet.PageSetup.PrintArea = "$B$5:$G$9"

End Sub

pour sélectionner ta zone d'impression c-à-d le tableau concerné.

Cordialement


Ouups....Banzai64 trop rapide pour moi

Bonsoir Banzai64, Patrick33,

> Banzai64 :: Masquer les deux tableaux en bas, fait remonter la dernière ligne "Visa du service"

Ne peut-on pas la voir en bas de la page ?

> Patrick33 :: Oui, c'est une alternative pour ne pas imprimer que de ce dont on a besoin !

Je vais le tester.

Re,

Comme j'ai une multizone à imprimer, l'impression par sélection ne fonctionne pas (Peut être mal utilisée)

J'ai essayé à la place de PrintArea par Union Range et PrintPreview, mais je n'obtiens qu'une seule zone (Ligne = "Visa du service")

Avec ce code :

Sub Impression()
    Dim strVar As String

    strVar = Range("B1:G9").Address
    strVar = strVar & "," & Range("B25:G25").Address
    Range(strVar).PrintPreview
End Sub

Bonjour Apt,

j'ai repris la macro de Banzai64, j'ai juste crée une variable visa dont la valeur est

"Visa du service" que je postionne en bas de page.

Banzai64: je n'ai pas pu tester ma macro car j'ai une errue d'éxécution '2147352571 (8002005') : L'élément portant ce nom

est introuvable.

Je doit charger un module?

Bonjour

patrick33 a écrit :

Je doit charger un module?

Pas à ma connaissance

N'ayant pas ce problème difficile de te conseiller

J'ai modifier la macro afin de "stabiliser" la zone de signature

Option Explicit

Sub Masque()
  If Range(ActiveSheet.Shapes(Application.Caller).ControlFormat.LinkedCell) = 10 Then
    Range("F25").Cut Range("F36")
    Rows("11:21").Hidden = True
  Else
    If Range("F36") <> "" Then Range("F36").Cut Range("F25")
    Rows("11:21").Hidden = False
  End If
End Sub

Bonsoir Banzai64,

Merci pour le code.

Mais comme j'aimerais ne masquer que les lignes de la page à imprimer et non pas toutes les lignes de la feuille, j'ai essayé de remplacer ceci :

Rows("11:21").Hidden = True

par cela :

Range("A11:G21").Hidden = True

Mais ça me déclenche une erreur :

Erreur d'exécution '1004':

impossible de définir la propriété Hidden de la classe Range.

Bonsoir

Tu ne peux maquer une plage de cellules, c'est soit des lignes, soit des colonnes

En quoi cela te gène de masquer les lignes

Tu as toujours la zone de signature au bon endroit


Edit:

Une autre solution

Option Explicit

Sub Masque()
  If Range(ActiveSheet.Shapes(Application.Caller).ControlFormat.LinkedCell) = 10 Then
    With Range("B11:G15,B17:G21")
      .Borders.LineStyle = xlNone
      .Font.ColorIndex = 2
      .Interior.ColorIndex = 2
    End With
  Else
    With Range("B11:G15,B17:G21")
      .Borders.Weight = xlThin
      .Font.ColorIndex = xlAutomatic
    End With
    Range("B11:G11,B17:G17").Interior.ColorIndex = 15
  End If
End Sub

Donc, problème résolu

Merci Banzai64.

EDIT :

Oui, c'est une bonne idée de blanchir la police et d'enlever les bordures.

Merci encore.

Bonjour,

Comment peut-on généraliser la formule en I1 pour qu’elle prenne en compte tous les mois de 31 jours ainsi que le cas du mois de février (28/29 jours) pour masquer un tableau ?

Merci.

Bonsoir

Bonnes fêtes

A tester

Bonjour,

Bonne fête Banzai64,

Le test est bon.

Merci encore.

Rechercher des sujets similaires à "tableaux invisibles date"