Imprimer tous les onglets de couleur rouge

Résolu
greg95greg Messages postés 3 Statut Membre -  
 greg95greg -
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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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. Pseudo...
       
      Merci Jordane , tu es o taquet, merci encore et bon mid week ! :-D
      0
  3. greg95greg Messages postés 3 Statut Membre
     
    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
  4. greg95greg Messages postés 3 Statut Membre
     
    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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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. greg95greg
       
      Désolé, j'ai vu ca après avoir posté le code. J y penserai la prochaine fois.
      Merci encore.
      0