Problème de condition dans une macro [Résolu]

Signaler
Messages postés
13
Date d'inscription
mardi 28 janvier 2020
Statut
Membre
Dernière intervention
20 février 2020
-
Christophe78129
Messages postés
13
Date d'inscription
mardi 28 janvier 2020
Statut
Membre
Dernière intervention
20 février 2020
-
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

Messages postés
44
Date d'inscription
mercredi 28 décembre 2016
Statut
Membre
Dernière intervention
29 janvier 2020
10
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
Messages postés
15000
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
21 février 2020
1 222
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
Messages postés
13
Date d'inscription
mardi 28 janvier 2020
Statut
Membre
Dernière intervention
20 février 2020

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.
Messages postés
13
Date d'inscription
mardi 28 janvier 2020
Statut
Membre
Dernière intervention
20 février 2020

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