Imprimer tous les onglets de couleur rouge

Résolu/Fermé
greg95greg Messages postés 3 Date d'inscription mardi 14 août 2018 Statut Membre Dernière intervention 16 août 2018 - 14 août 2018 à 18:34
 greg95greg - 16 août 2018 à 21:03
Bonjour a tous,
J ai une demande qui je pense est simple mais je ne m'en sort pas....

Je souhaite faire une macro pour imprimer(.pdf]) tous les onglets d un classeur ayant la couleur RGB (255,0,0).

Merci d'avance pour vos réponse.
A voir également:

4 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 août 2018 à 21:37
Ca change un peu le code

Sub PrintRed()
Dim sh As Worksheet
Dim couleur As Long
Dim arrSh()
Dim i As Long
For Each sh In ThisWorkbook.Sheets
    couleur = sh.Tab.color
    If couleur = "255" Then
        Debug.Print "Feuille : " & sh.Name
        i = i + 1
         ReDim Preserve arrSh(1 To i)
         'On stocke les feuilles dans un array
         arrSh(i) = sh.Name
    End If
Next

'On selectionne les feuilles à imprimer
ThisWorkbook.Sheets(arrSh).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\test.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub


2
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 août 2018 à 18:54
Bonjour,

un truc du genre
Sub PrintRed()
Dim sh As Worksheet
Dim couleur As Long

For Each sh In ThisWorkbook.Sheets
    couleur = sh.Tab.color
    If couleur = "255" Then
        Debug.Print "Feuille : " & sh.Name
        'ici le code pour imprimer
         sh.PrintOut
    End If
Next

End Sub

1
Merci Jordane , tu es o taquet, merci encore et bon mid week ! :-D
0
greg95greg Messages postés 3 Date d'inscription mardi 14 août 2018 Statut Membre Dernière intervention 16 août 2018
14 août 2018 à 19:12
Merci beaucoup, ça fonctionne nikel,

petite demande supplémentaire,

est il possible de compiler tout les onglets (en rouge) dans le même .pdf ?
0
greg95greg Messages postés 3 Date d'inscription mardi 14 août 2018 Statut Membre Dernière intervention 16 août 2018
Modifié le 16 août 2018 à 20:55
Rebonjour et encore merci pour la dernière fois,
J'ai un dernier soucis , je n'arrive pas à modifier le code afin de donner le nom du PDF équivalent au nom qui se situe dans case "a1" de la feuille "3".

J'ai essayé ça, si quelqu'un a une idée, je suis preneur :-)

Dim sh As Worksheet
Dim couleur As Long
Dim arrSh()
Dim i As Long
Dim Chemin As String, NomFic As String, resultat As String, extens As String, nbcarExt As Byte

        'dim Nom as string

For Each sh In ThisWorkbook.Sheets
    couleur = sh.Tab.Color
    If couleur = "255" Then
        Debug.Print "Feuille : " & sh.Name
        i = i + 1
         ReDim Preserve arrSh(1 To i)
         'On stocke les feuilles dans un array
         arrSh(i) = sh.Name
         
    End If
Next

'On selectionne les feuilles à imprimer
ThisWorkbook.Sheets(arrSh).Select

Chemin = ThisWorkbook.Path
extens = Split(ThisWorkbook.Name, ".")(1)
nbcarExt = Len(extens)
NomFic = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - nbcarExt)

      'Nom = thisworkbook.sheet(3).cells("a1")value

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Chemin & "\" & Nom & "pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False


EDIT : Ajout des balises de code
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 16 août 2018 à 21:03
Bonjour,

Déjà...lorsque tu postes ton code sur le forum, merci d'utiliser les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite .. nouvelle question = ouverture d'une nouvelle discussion. Tu as de la chances que je sois encore passé dessus pour voir ta nouvelle demande.

Et enfin, concernant ton souci...
Nom = thisworkbook.sheets(3).cells(1,1).value
' ou
Nom = thisworkbook.sheets(3).range("A1").value

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Chemin & "\" & Nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
0
Désolé, j'ai vu ca après avoir posté le code. J y penserai la prochaine fois.
Merci encore.
0