Recherche dans liste et transfert cellule si non vide, puis imprimer

bonjour,

j'espère être suffisamment clair pour que vous puissiez m'apporter votre aide

j'ai conçu un petit fichier pour appuyer ma demande...

conception de mon fichier excel :

- chaque jour, modification de l'onglet "commande jour" ->ce qui met à jour les onglets A1-B1-C1...

ce que je voudrais :

j'aimerai après avoir mis à jour mon tableau et contrôlé les données, imprimer les feuilles A - B et C ... par l'intermédiaire d'un bouton que je mettrais en place (pas de soucis pour ça, j'ai bien compris vos tutos et explications dans d'autres sujets (merci ^^)

conception d'une feuille : (un onglet A1-B1... envoi les infos dans une feuille A-B...)

j'aimerai lorsque je clique sur le bouton, que tous les noms des onglets A1-B1-C1 soient testés en cellule B2 (jaune) de leurs feuille correspondantes et que si la cellule B3 (bleue) contient une quantité alors impression de la feuille dans l'ordre des feuilles...

je joins mon petit fichier et espère que vous saurez m'apporter votre aide, plus que de réussir, je souhaite comprendre la conception de ce code.

dans tous les cas, merci de m'avoir lu

5feuille-test.xlsx (22.92 Ko)

j'ai su créer ce code pour mon programme, il fonctionne partiellement... j'ai une erreur à partir de cette ligne :

'YB PLOC MACRO

erreur sur la ligne RANGE ("D4")...

il y peut-être plus efficace comme code... Je ne comprends pas pourquoi cette ligne se met en erreur alors que tous mes onglets ont le même format et que le nom est correcte...

il y a également un soucis pour l'enchainement des impressions, les feuilles se mélangent au lieu de s'imprimer dans la suite logique...

merci à ceux qui pourront me venir en aide

Sub PPC()
    Dim ListeValeur() As Variant
    Dim a As Integer
    Dim Plagevaleur As Range

' PPC Macro
    Sheets("LANCEPPC").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

    Dim i As Integer
    Dim valeur As Integer
    For i = 1 To 32
        Sheets("PPC").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'NG Macro

    Sheets("LANCENG").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("NG").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'LIE Macro

    Sheets("LANCELIE").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("LIE").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'RI Macro

    Sheets("LANCERIZPAT").Select
    Set PlageValeurs = Range("A6:A13")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("RIZ").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'Cla Macro

    Sheets("LANCERIZPAT").Select
    Set PlageValeurs = Range("A14:A24")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("F9").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'F4 Macro

    Sheets("LANCERIZPAT").Select
    Set PlageValeurs = Range("A25:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("F4").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YPV SF Macro

    Sheets("LANCEYPV").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("YPV").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YPV N Macro

    Sheets("LANCENO").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("NO").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YB P Macro

    Sheets("LANCEYB").Select
    Set PlageValeurs = Range("A6:A10")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("P").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
       Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YB G feuille 1 Macro

    Sheets("LANCEYB").Select
    Set PlageValeurs = Range("A11:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("G").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YB G feuille 2 Macro

    Sheets("LANCEYB2").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("G2").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YB G feuille 3 Macro

    Sheets("LANCEYB3").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
  'For i = 1 To 32
        Sheets("G3").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If

'YB G feuille 4 Macro

    Sheets("LANCEYB4").Select
    Set PlageValeurs = Range("A6:A31")
    ReDim ListeValeurs(1 To PlageValeurs.Count)
    For a = 1 To PlageValeurs.Count
        ListeValeurs(a) = PlageValeurs(a).Value
    Next a

   ' Dim valeur As Integer
   'For i = 1 To 32
        Sheets("G4").Select
        Range("D4").Value = ListeValeurs(i)
        valeur = Range("N4").Value
        If valeur = 0 Then
        'Rien
        Else
            ActiveWindow.SmallScroll Down:=-21
            Range("A1:T60").Select
            Selection.PrintOut Copies:=1, Collate:=True
            Sheets("feuille j+1").Select
            Range("B1").Select
    End If
        Next i

End Sub
Rechercher des sujets similaires à "recherche liste transfert vide puis imprimer"