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. 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
    1
    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
      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.
        0
        1. Bonjour et merci "f894009",
          J'ai testé la solution est c'est exactement ce que je voulais.
          Bonne journée
          0