Macro VBA Actualisation automatique Formule mensuelle - VB/VBA/VBS - Programmation
Marsh Posté le 11-04-2012 à 07:43:08
Bonjour,
Voici comment tu pourrais boucler sur tes feuilles pour trouver la dernière renseignée :
Code :
|
En gros, tu crées un tableau contenant tous tes noms d'onglet. Le tableau va de 0 à 11 => 1 par mois.
Tu boucle sur les noms de feuilles de 0 à 11 et dès que tu trouves une cellule non renseignée (j'ai mis cells(1, 1) dans l'exemple = A1) tu récupères la feuille d'avant (Set sh = Sheets(mois(i-1))).
Il faudra penser à gérer les erreurs car dans cet exemple, si le premier onglet est vide, ça doit planter. Le cas où il n'y a aucun onglet de vide n'est pas géré non plus.
Ensuite, si tu veux que la macro se lance à chaque modification, il faudra que tu la mettes dans ThisWorkbook, dans l'événement SheetSelectionChange ou autre, tu trouvera facilement sur google.
Marsh Posté le 11-04-2012 à 20:31:11
Merci beaucoup de ta proposition mais ce n'est pas exactement ce que je veux. Mes données de tous les mois sont dans une seule et même feuille c'est seulement ma marge qui est dans une autre... Mais ce n'est pas mon problème principal.
C'est plutôt de faire une boucle qui part de décembre et qui dit tant que le mois m n'est pas rempli je passe au mois précédent m-1. A chaque fois que je rentre des nouvelles données mensuelles, il faut que la macro le voit et qu'elle recalcule ma marge.
J'ai essayé d'écrire une macro mais j'ai un problème avec mes boucles imbriquées. On me dit qu'il manque un End For ou qqchose.
Si vous pouviez m'aider à la corriger, je vous remercie d'avance.
Code :
|
Marsh Posté le 11-04-2012 à 20:39:07
Il manque un next i entre les 2 end if.
Marsh Posté le 11-04-2012 à 20:45:10
Ok super pour ta réponse rapide. Je vais tester ça demain au boulot!
Je laisse le Next i après le Then quand même du coup ou pas?
Qu'est-ce que je mets à la place du coup?
Merci d'avance
Marsh Posté le 12-04-2012 à 07:07:27
Ah ouais, je l'avais pas vu celui là.
Tu vires cette condition et tu mets juste :
Code :
|
Marsh Posté le 10-04-2012 à 21:53:32
Bonjour,
J'aimerais développer une macro sous Excel mais j'ai un peu de mal avec sa programmation.
J'ai une feuille n°1 excel de gestion préparé avec tous les mois de l'année que je remplis au fur et à mesure toutes les fin de mois.
J'ai une autre feuille n°2 qui utilise ces données mensuelles afin de calculer la marge que j'ai par rapport au prévisionnel de mon projet.
J'aimerais qu'à chaque fois que je rentre des données dans mon mois écoulé, le calcul de cette marge se fasse automatiquement sans que j'ai besoin de changer les colonnes dans ma formule.
Par exemple, Feuil2!Marge Mars = Feuil1!Réalisé Mars - Feuil2!Prévisionnel Mars
Une fois que j'ai copié mes données du mois d'Avril, j'aimerais que ma macro s'éxécute et que la cellule qui contenait ma Marge de Mars soit remplie automatiquement par la Valeur de ma Marge en Avril. Peut-être qu'il faudrait que Excel fasse le calcul pour Mars tant que Avril est vide par exemple et ainsi de suite pour tous les mois mais je n'y arrive pas à rendre ça automatique.
J'aimerais ensuite étendre ce calcul à plusieurs projets qui sont alignés ligne par ligne mais je pense pouvoir m'en sortir si j'ai le début du code pour une cellule.
J'espère avoir été clair sinon je peux m'expliquer plus en détail.
J'aimerais que vous me donniez des pistes pour le code afin que je puisse implémenter ça à mon tableur.
Merci énormément pour votre aide