obligation de remplir cellule pour passer au mois suivant

donadoni16

XLDnaute Junior
Bonjour à tous,
j'ai fichier avec lequel je fais le suvi de consommation de l'imprimante mensuellement,
j'aimerais ajouter une condition à mon code commme ça en cliquant sur ajouter un mois un message m'interdira de passer au mois suivant si les cellules de la ligne 10 et 12 ne sont pas remplies.
dans ce cas par exemple E10 et E12
 

Pièces jointes

  • donadoni.xlsm
    22.1 KB · Affichages: 40

Hieu

XLDnaute Impliqué
Bonjour,

Une idée :
VB:
Sub CopierMois()
Dim C As Range
    Set C = Cells(8, Columns.Count).End(xlToLeft).Offset(, 1)

For Each cel In Range(Cells(9, Range("C8").End(xlToRight).Column), Cells(16, Range("C8").End(xlToRight).Column))
If cel = "" Then
    MsgBox ("mois non terminé")
    Exit Sub
End If
Next cel

    Range("D8:D22").Copy C
    C.Offset(1).Resize(4).ClearContents
    C.Offset(1).FormulaR1C1 = "=R[1]C[-1]"
    C.Offset(3).FormulaR1C1 = "=R[1]C[-1]"
    Application.CutCopyMode = False
End Sub
 

donadoni16

XLDnaute Junior
Bonjour hieu,
merci pour votre réponse ca marche très bien,
peut on ajouté une condition c'est à dire le message qui m'interdit si les cellules de la ligne 10 et 12 ne sont pas remplis m'interdit aussi si ces la valeur des cellules de la ligne 9 sont < de celles de la ligne 8, (la même chose si la valeur des cellules de la ligne 11 sont < de celles de la ligne 10)

Cordialement
Donadoni
 

Hieu

XLDnaute Impliqué
Re,

Pas sûr d'avoir compris :
VB:
Sub CopierMois()
Dim C As Range
    Set C = Cells(8, Columns.Count).End(xlToLeft).Offset(, 1)

For Each cel In Range(Cells(9, Range("C8").End(xlToRight).Column), Cells(16, Range("C8").End(xlToRight).Column))
If cel = "" Then
    MsgBox ("mois non terminé")
    Exit Sub
End If
Next cel

If Cells(10, Range("C8").End(xlToRight).Column) < Cells(9, Range("C8").End(xlToRight).Column) Then
    MsgBox ("pb : compteur fin < compteur debut")
    Exit Sub
End If

If Cells(12, Range("C8").End(xlToRight).Column) < Cells(11, Range("C8").End(xlToRight).Column) Then
    MsgBox ("pb : compteur fin < compteur debut")
    Exit Sub
End If

    Range("D8:D22").Copy C
    C.Offset(1).Resize(4).ClearContents
    C.Offset(1).FormulaR1C1 = "=R[1]C[-1]"
    C.Offset(3).FormulaR1C1 = "=R[1]C[-1]"
    Application.CutCopyMode = False
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50