Problème de condition dans une macro

Résolu
Christophe78129 Messages postés 13 Statut Membre -  
Christophe78129 Messages postés 13 Statut Membre -
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. -NoeGo- Messages postés 55 Statut Membre 12
     
    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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  3. Christophe78129 Messages postés 13 Statut Membre
     
    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
  4. Christophe78129 Messages postés 13 Statut Membre
     
    Bonjour et merci "f894009",
    J'ai testé la solution est c'est exactement ce que je voulais.
    Bonne journée
    0