Aide sur boucle For Each

Bonjour à tous

je reviens vous solliciter votre aide pour avancer dans mon projet.

j'ai bien avancé (enfin selon moi) sur ce classeur servant à calculer des situations de travaux.

Il me reste quelques soucis. Celui qui me préoccupe aujourd'hui est le suivant :

dans la feuille "CPP titutlaire ST" on indique les montants mensuels de travaux réalisés par tranche et prestataire dans les colonnes correspondantes à savoir I29 : J140.

Les montants ainsi inscrits sont reportés dans les cellules BM1 (travaux du titulaire taux de TVA1) et BN1 (travaux du titulaire au taux de TVA2). idem dans BM2/BN2 mais pour le cotraitant.

On passe ensuite dans la feuille de révision et les montants de BM1/BN1 sont reportées dans les cellules :

• B7:B46 pour les travaux du tituaire taux TVA1

C6:C46 pour les travaux du titulaire taux TVA2

Cela fonctionne très bien (avec votre aide car vous m'aviez aiguillé sur ce sujet) mais là où ça coince c'est quand sur un mois donnée il n'y a que des travaux à 10% de TVA (ou 20%) car, le mois suivant, en ouvrant la feuille "revision" la macro vient écrire à la première cellule vide de la plage définie et fausse donc le calcul de mes révisions

Dim PL As Range
Dim CEL As Range

Set PL = Range("B7:B46")
For Each CEL In PL
    If CEL.Value = "" <> 0 And Sheets("CPP TITULAIRE-ST").Range("BM1") <> 0 Then CEL.Value = Sheets("CPP TITULAIRE-ST").Range("BM1").Value: Exit For
    'copie la valeur des mandats à faire sur titulaire/groupement/cotraitant en tenant compte des lignes 1 et 2 du mandat
    Next CEL

Set PL = Range("C7:C46")
For Each CEL In PL
    If CEL.Value = "" <> 0 And Sheets("CPP TITULAIRE-ST").Range("BN1") <> 0 Then CEL.Value = Sheets("CPP TITULAIRE-ST").Range("BN1").Value: Exit For
    'copie la valeur des mandats à faire sur titulaire/groupement/cotraitant en tenant compte des lignes 1 et 2 du mandat
    Next CEL

Faut il ajouter une condition dans la boucle ? je pensais à faire la somme des travaux du mois sur les deux taux à la fin de la macro (par exemple sur une plage 07:046) et tester en début de macro si sur cette plage le montant est supérieur à 0.

Je cherche mais je n'arrive pas à trouver de solution. Comment procéderiez vous ? (si mon explication a été claire)

merci à tous

11cpp-v14-vierge.xlsm (360.99 Ko)
Rechercher des sujets similaires à "aide boucle each"