Conditions d'impression

  • Initiateur de la discussion Initiateur de la discussion breeze
  • 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 !

breeze

XLDnaute Occasionnel
Bonjour à tous,
J'ai un problème de macro.
J'ai une macro qui me permet de prendre le nom de mes 300 élèves. Un après l'autre. La macro place le premier nom dans une facture. La fonction rechercheh fait en sorte que la facture se complète et que des montants apparaissent.
Je voudrais que si la facture de l'élève est à $0.00, que la macro saute par dessus ce nom et passe au suivant.
J'utilise cette macro qui fonctionne très bien mais elle imprime les 300 noms qu'il y ait un montant ou non.
J'ai mis en rouge ce qu'il me manque à l'endroit où je pense que ça irait

Sub impniveau()
Dim retour As Integer

Sheets("feuil2").Select
If Range("p1").Value = 1 Then
Impressiondossier
Else
Dim val
val = Sheets("Feuil2").Range("R1").Value

retour = MsgBox("Voulez-vous vraiement imprimer tout le " & val & " ? ", vbYesNo + vbInformation + vbDefaultButton2, "Ecole Secondaire de Saint-Damien")
If retour = vbYes Then

For Each b In Range("Feuil1!b5:b400")
If b.Value = Range("n1").Value And b.Offset(0, 2).Value <> 0 Then

b.Offset(0, 2).Copy
Range("d3").Select
selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Impressiondossier
si la cellule E16 est = à 0 n'imprime pas ce nom (C'est à dire n'exécute pas la macro impressiondossier) et passe au nom suivant
End If

Next b
End If

End If

End Sub



Merci
 
Re : Conditions d'impression

Bonjour
la cellule E16 est sur feuil1 ou feuil2?
Sur feuil2
Sheets("feuil2").Select
If Range("p1").Value = 1 and range("E16")>0 Then
Impressiondossier

sur feuil1
For Each b In Range("Feuil1!b5:b400")
if range("E16").value>0 then
If b.Value = Range("n1").Value And b.Offset(0, 2).Value <> 0 Then
...etc...
endif
endif

A+ François
 
Re : Conditions d'impression

Merci mais il faut que la condition arrive après le else.
La première partie jusqu'au else est correct elle imprime ce que je vois à l'écran et n'imprime qu'une facture.
mais si p1 est égale à 2( ou différent de 1)
la macro imprime tout une classe d'élève et c'est la que je veux qu'elle n'imprime que ceux de la classe qui ont un total (E16) différent de $0.00.
Le E16 est sur la page 2 sur la page ou est la facture.
J'ai ajouter une partie (en rouge).
J'obtiens ce que je veux sauf que quand elle tombe sur une personne dont le solde (E16) est différent de 0.00 elle l'imprime 30 fois au lieu que d'une seule fois.
Voici ceque j'ai ajouté. Peux tu le corrigé?
Sub impniveau()
Dim retour As Integer

Sheets("feuil2").Select
If Range("p1").Value = 1 Then
Impressiondossier
Else
Dim val
val = Sheets("Feuil2").Range("R1").Value

retour = MsgBox("Voulez-vous vraiement imprimer tout le " & val & " ? ", vbYesNo + vbInformation + vbDefaultButton2, "Ecole Secondaire de Saint-Damien")
If retour = vbYes Then

For Each b In Range("Feuil1!b5:b400")
If b.Value = Range("n1").Value And b.Offset(0, 2).Value <> 0 Then
b.Offset(0, 2).Copy
Range("d3").Select
selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
If Range("e16").Value <> 0 Then
Impressiondossier

End If

Next b
End If


Merci!!
 
Dernière édition:
- 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
4
Affichages
587
Réponses
2
Affichages
335
Retour