Imprimer tous les onglets de couleur rouge

Résolu
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.

4 réponses

  1. Modérateur
    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
    1. Modérateur
      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
      1. Merci Jordane , tu es o taquet, merci encore et bon mid week ! :-D
        0
    2. 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
      1. 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
        1. Modérateur
          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
        2. Désolé, j'ai vu ca après avoir posté le code. J y penserai la prochaine fois.
          Merci encore.
          0