Problème de condition dans une macro

Résolu/Fermé
Christophe78129 Messages postés 13 Date d'inscription mardi 28 janvier 2020 Statut Membre Dernière intervention 20 février 2020 - 29 janv. 2020 à 16:59
Christophe78129 Messages postés 13 Date d'inscription mardi 28 janvier 2020 Statut Membre Dernière intervention 20 février 2020 - 2 févr. 2020 à 06:21
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
A voir également:

4 réponses

-NoeGo- Messages postés 52 Date d'inscription mercredi 28 décembre 2016 Statut Membre Dernière intervention 7 mai 2021 11
29 janv. 2020 à 20:30
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 31 janv. 2020 à 07:46
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
Christophe78129 Messages postés 13 Date d'inscription mardi 28 janvier 2020 Statut Membre Dernière intervention 20 février 2020
30 janv. 2020 à 16:02
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
Christophe78129 Messages postés 13 Date d'inscription mardi 28 janvier 2020 Statut Membre Dernière intervention 20 février 2020
2 févr. 2020 à 06:21
Bonjour et merci "f894009",
J'ai testé la solution est c'est exactement ce que je voulais.
Bonne journée
0