Exécution de macro

Bonjour

J'ai un plan d'action ou j'ai réussi par une fonction à calculer les cellules vertes (action exécutées) et les cellules rouges (action non faites) Je débute en VBA. J'ai fait ensuite une macro qui calcule la réalisation sur le semestre 1 puis 2 mais mon problème vient de l'année. Quand je calcule l'année j'ai fait une macro avec votre aide pour exclure si division par zéro (aucune action réalisée). Par contre quand mon tableau commence par aucune action la macro ne s’exécute pas je sais pas si if then est la bonne méthode car je crois qu'il faut que je rajoute une condition mais je n'y arrive pas.

Deuxième problème, après lecture de tuto je n'arrive pas à mettre un arrêt en fonction des colonnes remplis donc j'ai mis une sélection de colonne longue pour que je puisse faire les calculs sur l'ensemble des feuilles. je n'arrive pas à intégrer end(xldown)

Troisième et dernier problème je voudrais que toute mes petites macro soient en une seule et s'applique à un fichier entier comprenant un certain nombre de feuilles.

Je vous remercie de votre aide

14management.xlsm (26.01 Ko)

Bonjour

1er problème : à tester ci-joint

2nd problème : je ne comprend pas trop la question

crdlt,

André

Bonjour

Merci beaucoup mais peux tu m'expliquer comment tu as fais les boutons pour déclencher les macros.

Pour ma deuxième question : je me suis mal exprimée. En fait je voudrais modifier la ligne suivante :

Selection.AutoFill Destination:=Range("AO3:AO112"), Type:=xlFillDefault pour que la macro s’exécute en fonction du nombre de ligne pour lesquelles j'ai des actions qui ont été programmées et non pas comme actuellement en fonction du tableau le plus grand.

Merci pour votre aide c'est déjà super

Bonjour toutes et tous, bonjour Cpin31

Pour la question 1, il fallait juste mettre les boutons de commandes onglet développeur et les associés avec tes macros de tes modules afin de les activés que tu avais dans tes modules toutes prêtes cool !

pour la question 2 cela s’arrête maintenant jusqu'au ligne 19 au lieu de 112 afin de faire le tableau dans son entier

- je t'ai mis des mises en forme conditionnelles (MFC) pour rouge et vert si 1 de couleur verte ou rouge etc, les cellules contiennent toujours leurs formules (pas toucher), la MFC si un 0 le met de couleur de police blanc par exemple afin de mieux visualiser (un peu d'arrangement afin que cela soit plus clair )

voili voila ci-joint le fichier

bonne journée

crdlt,

André

bonsoir,

Je vous remercie mais je ne comprends pas : Pouvez vous m'expliquer quelle ligne de programme vous avez modifié pour terminer à 19 comment automatiser pour que la macro s’arrête à la dernière ligne quand une feuille à un tableau de 19 ligne comme l'exemple mais que dans le même fichier l'autre feuille à 200 lignes ?

Pourquoi mettre des mises en forme conditionnelle ?

Merci pour vos explications

Bonjour et bon week-end à toutes et tous

le Hic !

Votre tableau comporte trop de cellules fusionnées

Exemple : D3 à D5 de la feuille Stratégie E3-E5, de C14 à C19 etc.

de plus :

Afin de pouvoir effectuer les calculs, pour les sommes et pourcentage pourquoi ne pas les décaler dans la ligne AR3 - AR4

de plus :

de D3 à D13 y'aura t-il d'autres lignes puisque d'après ce que je comprend comporte plus de 300 lignes ? (je n'ai vu que ce que je vois sur la feuille onglet Stratégie)

Pour modifier dans le module 2 du VBA

Exemple d'une modification remplacer : ("AL3:AL19") par ("AL3:AL300") (idem pour les autres)

Pour répondre à la questions des MFC :

Juste pour rendre le contenu plus visible à l'oeil

[Surligner]Bon cela devient trop complexe pour moi et il manque trop de précisions, je suis désolé, quelqu'un aura mieux compris que moi

sincère salutation [/Surligner]

crdlt,

André

Bonjour

C'est justement pour éviter de mettre à chaque feuille la modification du nombre de ligne à savoir pour la feuille 1 je vais mettre A3:A19 mais la deuxième feuille je vais mettre A3:A112 et etc : je voulais juste un moyen de faire une boucle qui calcule en fonction de ma dernière ligne mais je n'y arrive pas.

merci pour votre aide

bonjour,

sur base de ce que j'ai cru comprendre

9management.xlsm (23.75 Ko)

Bonjour,

Merci beaucoup par contre sans trop insister, ma macro année 2017(dl) ne fonctionne pas quand bien entendu [AL3] et [AO3] sont égal à zéro :

Sub annee2017(dl)

If [AL3] <> 0 Or [AO3] <> 0 Then

[AQ3].FormulaR1C1 = "=IFERROR((RC[-6]+RC[-3])/((RC[-6]+RC[-3])+(RC[-5]+RC[-2])),"""")"

[AQ3].AutoFill Destination:=Range("AQ3:AQ" & dl), Type:=xlFillDefault

Range("AQ3:AQ" & dl).Style = "Percent"

End If

End Sub

la macro ne commence pas. Je pense qu'il me manque une condition pensez vous que je peux mettre else [AL3]=0 or[AO3]=0 then [AQ3].FormulaR1C1=" =" " ou alors je mets cette condition en premier et l'autre en second.

merci pour votre aide

bonjour,

bonjour le forum,

voici comment tu pourrais intégrer les 2 conditions, l'ordre importe peu, sauf si l'on attache de l'importance aux performances, auquel cas il est de bonne pratique de mettre le test de la condition qui sera la plus souvent vraie en premier lieu.

Sub annee2017(dl)

If [AL3] <> 0 Or [AO3] <> 0 Then

[AQ3].FormulaR1C1 = "=IFERROR((RC[-6]+RC[-3])/((RC[-6]+RC[-3])+(RC[-5]+RC[-2])),"""")"
[AQ3].AutoFill Destination:=Range("AQ3:AQ" & dl), Type:=xlFillDefault
Range("AQ3:AQ" & dl).Style = "Percent"
Else
 [AQ3].FormulaR1C1="=ta formule pour le cas où AL3 et AO3 valent 0" 
End If

End Sub

Bonjour,

J'ai fait un copie coller de tout le programme. Mon souci s'est que la macro ne se calcule pas car bloque non seulement à l'année quand la somme des cellules rouges soit [AL3] et [AO3] sont égal à zéro mais de plus ne me calcule rien de l'ensemble du programme. Par contre quand je ferme le fichier et que je ré-ouvre le fichier tout est calculé je ne comprends plus rien. En pièce jointe je vous mets une copie du fichier avec les deux onglets de mon tableau de bord. En espérant que ce soit plus clair. Vous verrez donc que peut être je fais une erreur dans ma macro année 2017 puisque j'ai voulu éviter la division par zéro quand les cellules rouges sont égal à zéro.

Encore merci pour votre aide.

Bonjour

Ne tiens pas compte du message : mais je viens de trouver la solution en fait il fallait enlever la condition. Encore mille merci c'est génial.

bonjour,

un essai, note que je n'ai pas essayé de comprendre la logique de ton classeur, ni la pertinence de tes formules.

edit : je n'avais pas vu ta réponse au moment de mettre la mienne.

Une remarque : la macro MAJ s'applique à l'ensemble des feuilles, alors qu'à mon sens elle ne devrait s'appliquer que sur certaines d'entre elles, mais apparemment cela fonctionne quand même.

le dernier fichier inclut une correction pour cette remarque.

Merci encore

maintenant que tu as modifié pour exclure certaines feuilles je vais travailler pour comprendre la macro maj. Effectivement cela marchait mais était beaucoup plus long car la macro était active sur l'ensemble des feuilles. Je te remercie beaucoup, j'ai encore beaucoup à apprendre. Je trouve ce site remarquable pour l'apprentissage et les exemples

Merci encore

Rechercher des sujets similaires à "execution macro"