XL 2010 Macro d'impression

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alexpoupp

XLDnaute Junior
Bonjour à tous,

Je développe aujourd'hui un fichier excel pour mon entreprise qui permet d'imprimer un bon de livraison ainsi que des fiches palettes une fois un formulaire rempli. Cependant lorsque l'on clique sur le bouton impression (feuill1 case "Option d'impression BL") j'aimerai que cela imprime le nombres de feuille en fonction du nombre de palettes données (feuille: fiche palette ligne h42), j'ai déjà crée la macro d'impression mais je n'arrive pas à ajouter le fonction demandé. En plus de cela lorsque cela imprime les fiches, en bas de la feuille on voit écrit (palette 1/16 etc), j'aimerai que lorsque la feuille 2 s'imprime il soit écrit sur la feuille (2/16) et ainsi suite...

EDIT: Pour ce qu'il s'agit du nombre de feuille à imprimer j'ai trouvé!!

J'espère avoir était claire, merci à tout ceux qui prennent le temps de répondre, réfléchir et lire ma problématique.

Bonne journée à tous!!

Alex
 

Pièces jointes

Dernière édition:
Salut ALEXPOUPP,
VB:
Sub Imprime()
    With Sheets("Fiche palette ")
        xNbFiche = .[H42]
        For F = 1 To xNbFiche
            .[G42] = F & "/"
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
End Sub
Ce code imprime la fiche palette en fonction du nombre d'exemplaire donné en H42.
Par contre, pour le bon déroulement du code, il faudrait que la cellule G42 ne soit pas protégé, car la macro inscrit 1, puis 2, puis 3 ....
@+ Lolote83
 
Bonjour Lolote83,

Merci de ta réponse, cependant je suis débutant sur excel et je ne sais pas ou insérer exactement cette ligne de code.
Pouvez-vous m'indiquer exactement ou la mettre, ou le faire directement dans mon fichier.

Merci d'avance.

PS: j'ai joint le fichier excel sans la protection

Alex
 

Pièces jointes

(Re)Bonjour,

Voici le code que j'avais déjà :
VB:
Sub impFP()
'
' impFP Macro
'

'
    Sheets("Fiche palette ").Select
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = "$A$1:$H$49"
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.25)
        .RightMargin = Application.InchesToPoints(0.25)
        .TopMargin = Application.InchesToPoints(0.75)
        .BottomMargin = Application.InchesToPoints(0.75)
        .HeaderMargin = Application.InchesToPoints(0.3)
        .FooterMargin = Application.InchesToPoints(0.3)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=Range("H42").Value, Collate:=True, _
        IgnorePrintAreas:=False
    Sheets("Fiche palette solde").Select
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = "$A$1:$H$49"
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.25)
        .RightMargin = Application.InchesToPoints(0.25)
        .TopMargin = Application.InchesToPoints(0.75)
        .BottomMargin = Application.InchesToPoints(0.75)
        .HeaderMargin = Application.InchesToPoints(0.3)
        .FooterMargin = Application.InchesToPoints(0.3)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub

A quel niveau j'insère les lignes de code?
Je m'excuse de mon manque de compréhension

Merci

Alex
 
Re bonjour,
Derniere chose, j'aimerai remettre ensuite le numéro de page à 1.
Inutile car lors de la prochaine impression, celle-ci recommencera normalement à 1, mais si tu y tiens.

VB:
Sub Imprime()
    With Sheets("Fiche palette ")
        xNbFiche = .[H42]
        For F = 1 To xNbFiche
            .[G42] = F & "/"
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
    .[G42]=1 & "/"
End Sub
@+ Lolote83
 
Bonjour à tous,

Encore un dernier problème, je souhaite lorsque sur la page "fiche palette solde" s'il y écrit en A50 "1" que cela imprime cette feuille, et s'il y écrit "aucune" que cela imprime rien quand je lance la macro.

Merci d'avance

Alex

VB:
Sub Imprime()
    With Sheets("Fiche palette ")
        xNbFiche = .[A50]
        For F = 1 To xNbFiche
            .[G42] = F & "/"
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
    With Sheets("Fiche palette solde ")
        xNbFiche = .[A50]
        For F = 1 To xNbFiche
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
End Sub
 
Re salut,
Peut être comme ça
VB:
Sub Imprime()
    With Sheets("Fiche palette ")
        xNbFiche = .[A50]
        For F = 1 To xNbFiche
            .[G42] = F & "/"
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
    With Sheets("Fiche palette solde ")
        xNbFiche = .[A50]
        if xNbFiche="Aucune" then Exit Sub
        For F = 1 To xNbFiche
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
End Sub
@+ Lolote83
 
Re salut,
Peut être comme ça
VB:
Sub Imprime()
    With Sheets("Fiche palette ")
        xNbFiche = .[A50]
        For F = 1 To xNbFiche
            .[G42] = F & "/"
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
    With Sheets("Fiche palette solde ")
        xNbFiche = .[A50]
        if xNbFiche="Aucune" then Exit Sub
        For F = 1 To xNbFiche
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
End Sub
@+ Lolote83
Re Bonjour,

1575969253915.png


Cela m'affiche une erreur 🙂
 
Dernière édition:
Re salut,
Peut être comme ça, il faut faire attention à la façon dont sont nommés les onglets
VB:
Sub Imprime()
    With Sheets("Fiche palette ")
        xNbFiche = .[A50]
        For F = 1 To xNbFiche
            .[G42] = F & "/"
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
    With Sheets("Fiche palette solde")
        xNbFiche = .[A50]
        If UCase(xNbFiche) = "AUCUNE" Then Exit Sub
        For F = 1 To xNbFiche
            .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
        Next F
    End With
End Sub
Pour info, l'onglet Fiche palette à un espace à la fin, l'onglet Fiche palette solde non d’où peut être l'erreur dans le précédent code
Par contre, rien n'indique en A50 une valeur numérique et/ou "aucune" ?????
@+ Lolote83
 
Re bonjour,
Pourquoi changer le code quand il est inscrit : If UCase(xNbFiche) = "AUCUNE" Then Exit Sub
et tu le transcris comme çà If UCase(xNbFiche) = "Aucune" Then Exit Sub (voir copie écran ci-dessus la tienne alors que j'avais bien inscrit au post#13)
@+ Lolote83
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
2 K
  • Question Question
Microsoft 365 Macro "évolutif"
Réponses
8
Affichages
1 K
Retour