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 CELFaut 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