Code vba pour impression

IMRANE

XLDnaute Occasionnel
BONSOIR le forum et tt le monde


SALUT TT le monde

voici mon probleme
En utilisant un code VBA
j aimerai imprimer une feuille excel nommé " LIVRAISON" (B:2 , I:37) mais juste sur la moitie d'une feuille A4
Comme ça quand je ferai deux copie a la fois .j aurai une copie que je garde et l autre qui sera pour le client
 

grisan29

XLDnaute Accro
Re : Code vba pour impression

bonjour imrane

voici le code que j'utilise pour imprimer mes factures ou devis en 2 exemplaires si cela peut t'aider
Code:
Private Sub imprime_Click()'nom bouton
  Dim msg, style, title

  If MsgBox("AVEZ-VOUS CLIQUEZ SUR LE BON BOUTON DE BAS DE PAGE ?", vbOKCancel + vbDefaultButton2, "ATTENTION A L'OUBLI") = vbOK Then  ' Définit le message.

    Sheets(WS_FACTURE).PrintOut Copies:=2, Collate:=True 'nom feuille a changer
  Else    ' L'utilisateur a choisi Non.
    MsgBox "impression annulée"  ' Effectue une action.quitter"

  End If

End Sub
et dans le workbook
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)  'Utilis & Chr(10) &
  Dim VPB As VPageBreak, HPB As HPageBreak
  Dim No As String, Dt As String

  Application.ScreenUpdating = False

    'formater en vue d'impression

   With Worksheets(WS_FACTURE)
    'reset parametres d'impression
    .ResetAllPageBreaks
    With .PageSetup
      'redefinition de la plage d'impression
      .PrintArea = "$C$1:$M$" & [MTTC].Row + 25

      .CenterHeader = ""
      .CenterFooter = ""
    End With
    'passage en break preview sinon erreur avec DragOff
    ActiveWindow.View = xlPageBreakPreview
    'déplacement des sauts de page
    For Each VPB In .VPageBreaks
      VPB.DragOff Direction:=xlToRight, RegionIndex:=1
    Next VPB
    'retour à vue normale
    ActiveWindow.View = xlNormalView
    'ajout de ligne avant et après chaque saut de page pour délimiter le cadre lors de l'impression
    'Lisez Saut de Page Horizontal
    For Each HPB In .HPageBreaks
      'On parcourt la collection des Sauts de pages (HPageBreaks)
      'HPB.Location est la première cellule juste en bas du saut de page
      'Donc HPB.Location.row-1 est la ligne juste avant le saut de page

      With HPB.Location.offset(-1, 3).Resize(1, 9)
        .Borders(xlEdgeBottom).LineStyle = xlContinuous  'bordure inférieure
        .Borders(xlEdgeTop).LineStyle = xlContinuous  ' bordures haute
        ' est la plage allant de la 3ème colonne à la 12ème de la ligne juste en dessus du saut de page
        
      End With
    Next HPB

  End With

  Application.ScreenUpdating = True

End Sub
ce code fonctionne car il arrive que mes devis fasse plusieurs feuilles

a voir si cela peut aider
Pascal
 
Dernière édition:

IMRANE

XLDnaute Occasionnel
Re : Code vba pour impression

bonjour grisan29 le forum

j ai deja des codes dans mon fichier de peur de faire une faute je vous envoie mon fichier pour me monter ou je mettrai le code

Plus "option bouton" pour executer l impression
 

Pièces jointes

  • JC Stock.xlsm
    135.9 KB · Affichages: 34
  • JC Stock.xlsm
    135.9 KB · Affichages: 33
  • JC Stock.xlsm
    135.9 KB · Affichages: 32

grisan29

XLDnaute Accro
Re : Code vba pour impression

bonjour imrane

je te renvoie ton fichier dans lequel j'ai intégrer le code mis plus haut et qui a surement des lignes inutiles que je ne saurait pas déterminées lesquelles
j'ai mis un bouton pour l'impression mais non nommé, dans vba il faudra enlevé printpreview et le coche pour activé l'impression

je ne sais pas non plus i tu voulais les 2 feuilles sur la même car du coup je vais devoir passer la main a plus expert
Pascal
 

Pièces jointes

  • JC Stock.xlsm
    137.3 KB · Affichages: 32
  • JC Stock.xlsm
    137.3 KB · Affichages: 35
  • JC Stock.xlsm
    137.3 KB · Affichages: 31
Dernière édition:

grisan29

XLDnaute Accro
Re : Code vba pour impression

re imrane

dans thisworkbook tu replace le code que j'ai mis par celui ci

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)  'Utilis & Chr(10) &
 
  Application.ScreenUpdating = False

    'formater en vue d'impression

   With Worksheets("LIVRAISONS")
   
        With .PageSetup
      'redefinition de la plage d'impression
      .PrintArea = "$B$2:$I$37"
    End With
  
  End With

  Application.ScreenUpdating = True

End Sub
qui nettement plus court

Pascal
 
Dernière édition:

IMRANE

XLDnaute Occasionnel
Re : Code vba pour impression

RE
vous vous etes trompe de non de la feuille " LIVRAISON " sans "S" c est la deusieme feuille qui porte le nom " LIVRAISONS "
C est bon j ai enleve le " S " et ça marche .comment rendre les testes avec couleur noir et le fond juste en blanc
pour economiser les cartouches couleur

et merci bcp mon ami
 

grisan29

XLDnaute Accro
Re : Code vba pour impression

bonjour imrane

heureux que tu ai pu modifié la feuille a imprimer car je t'envoie une autre version d'impression qui te laisse le choix d'imprimer en couleurs où en noir et blanc toujours derrière le même bouton mais plus dans thisworbook

j'ai oublier de te demander si c'est pour IMRANE où IMRANE 74 le fichier

pascal
 

Pièces jointes

  • JC Stock.xlsm
    131.4 KB · Affichages: 37
  • JC Stock.xlsm
    131.4 KB · Affichages: 41
  • JC Stock.xlsm
    131.4 KB · Affichages: 32
Dernière édition:

IMRANE

XLDnaute Occasionnel
Re : Code vba pour impression

RE grisan29

j ai copie le code dans mon fichier origine

j ai change le non "CommandButton1" par " IMPRIMER" dans le code VBA

j ai insere un commande button dans ma feuille , une fois active je ne peux plus lui changer de place ni lui changer de nom

comment faire donc
et merci
 

grisan29

XLDnaute Accro
Re : Code vba pour impression

bonjour imrane

il faut cliquer sur mode création dans le menu pour déplacer ou modifié le bouton en le sélectionnant
j'ai oublier de mettre dans le code que la fonction noir et blanc où couleur n'est pas ma propriété mais celle de Mr VIARD Jean Paul que je salue
Pascal
 
Dernière édition:

IMRANE

XLDnaute Occasionnel
Re : Code vba pour impression

BONSOIR grisan29

MERCI bcp pour le travail . excelent pour l impression

j ai une faveur a vous demander svp : Si vous voyez mon fichier " JC STOCH " j ai mis dedans dans la première feuille "LIVRAISON"
des codes VBA pour avoir la liste déroulante de la colonne C7:C36 du bon livraison.
Une fois sur une cellule de la colonne "C" j ai une liste qui apparaisse en m indiquant de saisir les premiers lettres de la références .
Ma demande c est. pouviez vous modifier le code de façon a ce que la liste ne me demande pas les premiers lettres du code , mais
en saisissant n importe quel caractère du code ,la liste sélectionne tt les références qui contiennent ces caractères et non pas uniquement les premières lettres .

Espérant que j ai bien expliquer mon cas et merci
 

grisan29

XLDnaute Accro
Re : Code vba pour impression

bonjour imrane

je pense que c'est de ce code dont tu parles
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([C7:C36], Target) Is Nothing And Target.Count = 1 Then ' PLAGE CELLULES A MODIFIER
        Usf1.Left = Target.Left + 150
        Usf1.Top = Target.Top + 70 - Cells(ActiveWindow.ScrollRow, 1).Top
        Usf1.Show
    End If
End Sub

sur ce coup la je laisse la main a un forumeur plus aguerri

Pascal
 

Discussions similaires

Réponses
7
Affichages
453
Réponses
25
Affichages
1 K
Réponses
5
Affichages
328

Statistiques des forums

Discussions
312 536
Messages
2 089 390
Membres
104 156
dernier inscrit
Mer