Choix de ce qui apparait

Bonjour,

J'ai pour mon altertance un planning d'alternance que j'ai refais sur excel et je souhaite faire ressortir différentes périodes de l'année avec des couleurs de bordures. (j'ai légendé mon fichier). Mais je me pose une question, par exemple lorsque j'imprime le fichier je souhaite que mon tuteur pro voit toutes les périodes sauf les périodes en noir. Mais comment est ce que je pourrais faire pour choisir a l'impression ? Je m'y connais un peu en plan architecturaux et ce que je recherche ce serait comme faire une sorte de calque (choisir individuellement quelle couleur apparait sur le calendrier).

J'espère que c'est compréhensible !

Merci d'avance !

Si besoin du VBA me vas très bien, ca me permettrais d'apprendre encore plus a m'en servir.

Ci-joint mon fichier

Bonjour,
je ne suis pas certain d'avoir compris votre souhait dans tous les détails, mais je vous propose déjà une esquisse ici

C'est un fichier .xlsm donc avec du code VBA.

Le principe que j'ai adopté :
J'ai dupliqué la feuille pour l'impression.
C'est sur cette feuille que sera appliqué la macro VBA MasquerCellulesBorduresDiagonales.
La cellule D52 est nommée "MODELE1" (elle correspond à la mise en forme que l'on souhaite appliquer au cas 1),
Actuellement elle est avec bordures extérieure simples comme un jour standard du planning. A vous de choisir le style
Vous pourriez définir d'autres Cellules "MODELE2" "MODELE3" "MODELE4" pour les différents cas (Légende 1, 2 ,3, 4).

Sélectionnez tout le planning A4 à AK35 dans la feuille dupliquée (Je l'ai fait dans "Pour Impression")
Lancez la macro :

Les cellules concernées sont celles :
- qui ont une diagonale montante de gauche à droite
- cette diagonale étant de couleur Noir Rouge vert ou bleu

Elles seront mise en forme en fonction de la couleur Noir Rouge vert ou bleu à partir de la cellule Modèle correspondante (ici, j'ai utilisé la même cellule modèle nommée "MODELE1").

Je m'aperçois qu'il y a des nombres (cellule y 30 par exemple) qui changent de police(à priori, elles devraient être les mêmes pour tous les jours du planning initial)
Si vous souhaitez ne pas faire apparaitre de nombre, il suffit dans la cellule modèle de choisir comme couleur de police "Blanc"

Pour l'impression, masquez les lignes modèles ou sélectionnez la zone d'impression souhaitée.

J'attends vos remarques

Voici le code

Sub MasquerCellulesBorduresDiagonales()
' balaie les cellules de la plage sélectionnée
Dim Cellule As Range
    For Each Region In Selection.Areas
        For Each Cellule In Region.Cells
            If Cellule.Borders(xlDiagonalUp).LineStyle = xlContinuous Then
            ' La cellule a une dagonale montante de gauche à droite
                Select Case Cellule.Borders(xlDiagonalUp).ColorIndex
                    Case xlAutomatic
                    Case 1, 3, 14, 33 'Noir Rouge vert bleu
                        InitBordures Cellule, Cellule.Borders(xlDiagonalUp).ColorIndex
                    Case Else
                End Select
            End If
        Next Cellule
    Next Region

End Sub
Sub InitBordures(pCellule As Range, pCouleur)
    Select Case pCouleur
        Case 1
            Range("MODELE1").Copy
        Case 3
            Range("MODELE1").Copy
        Case 14
            Range("MODELE1").Copy
        Case 33
            Range("MODELE1").Copy
        Case Else
    End Select
    pCellule.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

Pour rendre le code plus souple, pour les critères de choix des cellules à "éteindre", vous pourriez utiliser les légendes, toujours en utilisant les cellules nommées, par exemple LEGENDE1 pour la cellule D43 etc.
Le test dans le code deviendrait alors :

            If Cellule.Borders(xlDiagonalUp).LineStyle =Range("LEGENDE1").Borders(xlDiagonalUp).LineStyle Then
                Select Case Cellule.Borders(xlDiagonalUp).ColorIndex
                       Case Range("LEGENDE1").Borders(xlDiagonalUp).ColorIndex
                        InitBordures Cellule, 1
                       Case Range("LEGENDE2").Borders(xlDiagonalUp).ColorIndex
                        InitBordures Cellule, 2
                         ...
                    Case Else
                End Select
            End If

et la mise en forme

Sub InitBordures(pCellule As Range, pCouleur)
    Select Case pCouleur
        Case 1
            Range("MODELE1").Copy
        Case 2
            Range("MODELE2").Copy
        Case 2
            Range("MODELE3").Copy
        Case 2
            Range("MODELE4").Copy
        Case Else
    End Select
    pCellule.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

Une dernière remarque : si c'est juste pour effectuer une impression avec certaines cellules ayant une apparence particulière, peu d'intérêt de passer par du code VBA, en le faisant manuellement sur la copie de la feuille originale, çà ne prend qu'une minute.

Rechercher des sujets similaires à "choix qui apparait"