Problème de condition dans une macro
Résolu
Christophe78129
Messages postés
13
Statut
Membre
-
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
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
-
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 mettreEnd If
après la denière ligne de code à ne pas exécuter si E5 = 0 -
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 -
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. -
Bonjour et merci "f894009",
J'ai testé la solution est c'est exactement ce que je voulais.
Bonne journée