Problème de condition dans une macro

Résolu
Bonjour,

J’ai commencé ma macro, l’impression se fait correctement, mais je bloque sur un problème : je voudrai pouvoir introduire une condition supplémentaire et je ne sais pas comment faire. Pour expliquer, je prends les valeurs dans B5 et C5 de la feuille « affectation » que je mets respectivement dans les cellules B7 et D9 de la feuille « Carte », je voudrai que si dans la cellule E5 de la feuille « affectation », il y a « O » on ne fasse rien et on passe à la ligne suivante.
Si quelqu’un a une idée voire une solution, je serai preneur.
Cordialement

Private Sub Impression_carburant_Click()
Application.ScreenUpdating = False
Set fa = Sheets("Affectation")
Set fc = Sheets("Carte")

'Impression des feuilles
Dim c1 As Range, c2 As Range, i&

With fc
Set c1 = .[B7] 'cellule B5 " affectation "
Set c2 = .[D9] 'cellule C5 " affectation "
.PageSetup.PrintArea = "A1:K22"
.PageSetup.Zoom = False
.PageSetup.FitToPagesWide = 1
End With

With fa.[C5].CurrentRegion
For i = 2 To .Rows.Count
'impression feuilles
c1 = .Cells(i, 1)
c2 = .Cells(i, 2): c2.Parent.PrintPreview
Next
End With

Application.ScreenUpdating = True
End Sub


Configuration: Windows / Firefox 72.0

4 réponses

  1. Bonjour et merci "f894009",
    J'ai testé la solution est c'est exactement ce que je voulais.
    Bonne journée
    1. Bonjour a tous et toutes,

      avec ce que j'ai compris, a tester:

      Private Sub Impression_carburant_Click()
          'Impression des feuilles
          Dim c1 As Range, c2 As Range, i&
      
          'Application.ScreenUpdating = False
          Set fa = Sheets("Affectation")
          Set fc = Sheets("Carte")
      
          With fc
              Set c1 = .[B7] 'cellule B5 " affectation "
              Set c2 = .[D9] 'cellule C5 " affectation "
              .PageSetup.PrintArea = "A1:K22"
              .PageSetup.Zoom = False
              .PageSetup.FitToPagesWide = 1
          End With
      
          With fa.[C5].CurrentRegion
              For i = 1To .Rows.Count
                  'impression feuilles
                  If .Cells(i, 5) = "" Then
                      c1 = .Cells(i, 1)
                      c2 = .Cells(i, 2)
                      c2.Parent.PrintPreview
                  End If
              Next
          End With
          Application.ScreenUpdating = True
      End Sub
      
      1. Bonjour NeoGo,
        Le problème est d'incrémenté la cellule, en fait je commence par tester la ligne 5 si dans la colonne E il y a O, je n'imprime pas et passe à la ligne suivante. Si dans la ligne suivante il n'y a rien dans la colonne E, j'imprime et ainsi de suite.
        Bonne fin de journée.
        1. Bonsoir,

          Essaie d'ajouter cette condition avant le code que tu ne souhaites pas exécuter si E5 = 0 :
          If (fa.Range("E5").Value <> 0) Then

          et mettre
          End If
          après la denière ligne de code à ne pas exécuter si E5 = 0