[VBA] Impression après filtre

  • Initiateur de la discussion Initiateur de la discussion R@chid
  • Date de début Date de début

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 !

R@chid

XLDnaute Barbatruc
Supporter XLD
Bonsoir @ tous,
Sur ce forum, des amis (qui je remercie) m'ont beaucoup aidé sur un code VBA..
Je livre le fichier.
Maintenant je veux que je quand je fais un filtre sur le tableau, je peux lancer l'impression des devis filtrés, mais attention c'est pas encore fini, il y a un autre critère à prendre en compte..
si j'imprime normalement un devis ses pages vont être numérotées comme suite 1/1 si il contient une seule page et 1/3 2/3 3/3 si il contient 3 pages, mais si je veux imprimer 3 devis dans ce dernier fait partie, c'est normal que la numérotation de pages deviendra 1/5 2/5 3/5 4/5 5/5 ce que je veux c'est de garder la numérotation comme elle-est :
1/1 pour le premier
1/3 2/3 3/3 pour le deuxième
1/1 pour le troisième

J’espère être clair..

N’hésitez pas de demander plus d'explication en m'appelant sur le numéro vert : UnPostSurCeFil 😛😉
 

Pièces jointes

Dernière édition:
Re : Impression après filtre

Bonsoir l'ami R@chid ;-)

Voici le code à lier à ton bouton
Code:
Sub ImpressionDevis()
  Dim DLig As Long, Lig As Long
  ' Avec la feuille
  With Sheets("TableauDeBord")
    ' Récupérer la dernière ligne du tableau
    DLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For Lig = 3 To DLig
      ' Si la ligne est visible donc dans le filtre
      If .Range("A" & Lig).EntireRow.Hidden = False Then
        ' Imprimer le devis en question
        Worksheets(.Range("A" & Lig).Value).PrintOut
      End If
    Next Lig
  End With
End Sub

A+
 
Re : Impression après filtre

Bonsoir BrunoM45,
Merci encore pour ton retour,
J'ai essayé avec imprimante PDF (Universal Document Coverter), il me sort cette fenêtre..
BrunoM45_Impr.png

@ te relire


Edit :
Après plusieurs test, j'ai remarqué que cette fenêtre n'apparait que si je ne filtre pas par Situation et quand je n'utilise pas de filtre ça veut dire qu'il doit tout imprimer il imprime 3 ou 4 et il s’arrête

@ + +
 
Dernière édition:
Re : Impression après filtre

bonsoir l'ami r@chid ;-)

voici le code à lier à ton bouton
Code:
sub impressiondevis()
  dim dlig as long, lig as long
  ' avec la feuille
  with sheets("tableaudebord")
    ' récupérer la dernière ligne du tableau
    dlig = .range("a" & rows.count).end(xlup).row
    ' pour chaque ligne
    for lig = 3 to dlig
      ' si la ligne est visible donc dans le filtre
      if .range("a" & lig).entirerow.hidden = false then
        ' imprimer le devis en question
        worksheets(.range("a" & lig).value).printout
      end if
    next lig
  end with
end sub

a+


code fonctionnel exactement comme tu as demande r@chid
 
Re : Impression après filtre

Bonsoir @ tous,
Salut Kingfadhel,
Comme je l'ai signalé, je n'ai pas d'imprimante à la maison, je vais faire un essai au bureau demain incha'allah, sur mon PC je me sers de Universal Document Converter pour imprimer en PDF..
merci pour ton passage

@ + +
 
Re : Impression après filtre

Salut l'ami R@chid 😉

Re,
Peut-être car j'ai supprimé un onglet et je l'ai gardé sur le tableau..
@ + +
C'est tout à fait ça, une erreur d'exécution 9 L'indice n'appartient pas à la sélection
VBA tente d'imprimer une feuille qui n'existe pas

Pour parer à ce problème, tu peux mettre une gestion d'erreur
Code:
On Error Resume Next' imprimer le devis en question
Worksheets(.Range("a" & lig).Value).PrintOut
' Vérifier si erreur
If Err.Number <> 0 Then
 Err.Clear
  MsgBox "Le devis " & .Range("A" & lig).Value & " n'existe pas dans le classeur"
End If
On Error GoTo 0

A+
 
Re : Impression après filtre

Bonjour @ tous,
Salut BrunoM45,
Merci pour ton retour 🙂
Mais où je vais ajouter ce code?? le premier de l'impression je l'ai ajouté dans le module sous celui de l'ajout de devis, mais pour ce dernier je vais te dire que je sèche.

@ te relire
 
Re : Impression après filtre

Re,

Désolé, je pensais être clair 😉
Dans le premier code donné pour l'impression, tu remplace la simple ligne
Code:
Worksheets(.Range("a" & lig).Value).PrintOut
Par toutes celles là
Code:
' En cas d'erreur on continue
On Error Resume Next
' imprimer le devis en question
Worksheets(.Range("a" & lig).Value).PrintOut
' Vérifier si erreur
If Err.Number <> 0 Then
 Err.Clear
  MsgBox "Le devis " & .Range("A" & lig).Value & " n'existe pas dans le classeur"
End If
On Error GoTo 0

A+
 
- 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
40
Affichages
3 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
517
Réponses
31
Affichages
1 K
Retour