Code VBA ou formule pour trouver dernière cellule pleine

Bonjour le forum,

Dans une feuille Excel j'ai 3 ensembles de cellules (D5:D34, E5:E34, F5:F34). Les valeurs dans les cellules D5:D34 sont calculées, les valeurs dans les cellules E5:E34 sont saisies manuellement et les cellules F5:F34 sont la somme des cellules D(n) et E(n).

Les cellules D5:D34 ne sont pas forcément toutes pleines, mais il n'y a pas de vide entre 2 cellules pleines et on démarre toujours en D5.

Les cellules E5:E34, ne sont pas forcément toutes pleines. Il peut y avoir des cellules vides entre 2 cellules pleines et si la dernière cellule de la colonne D est pleine, la dernière cellule de la colonne E sera toujours vide et la cellule de la colonne E immédiatement avant sera toujours pleine (si D(n) <> 0, E(n) = 0 et E(n-1) <> 0).

Je recherche une formule ou un code VBA qui me permettrait de connaitre la dernière cellule manuellement et de calculer la somme des cellules F5:F(n). La somme de F5:F(n) sera affichée en F35, que lorsque les cellules de la colonne E auront été saisies.

Je vous joint un fichier pour illustrer tout ça, en espérant avoir été suffisamment clair dans mes explications.

Merci d'avance pour votre aide !

Très bonnes fêtes de fin d'année.

20exemple.zip (3.31 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

32exemple-v1.zip (19.54 Ko)

Bonjour gmb,

Je te remercie pour ta réponse, mais j'ai un petit soucis avec le fichier joint, car je n'arrive pas à faire fonctionner la macro.

Lorsque je modifie les valeurs, il ne se passe rien.

Peux-tu regarder se qui se passe.

Merci.

Bonne journée.

Bonjour,

Ton fichier n'est pas passé.

Cdlt.

Bonjour

Sergio33600 a écrit :

Lorsque je modifie les valeurs, il ne se passe rien.

Je viens de télécharger le fichier que je t'ai retourné pour ''voir ce qui se passe''.

Et je ne trouve rien d'anormal.

En fait, ce n'est pas lorsque tu modifies les valeurs qu'il se passe quelque chose mais, comme j'ai cru comprendre ta demande, lorsqu'il n'y a plus de vides entre les cellules pleines de la colonne E.

Mais peut-être ai-je mal compris ?

Bye !

Re-bonjour gmb, bonjour le forum,

Effectivement, lorsque toutes les cellules de la colonne E sont pleines, sauf la dernière, cela fonctionne. Mais comme je l'avais expliqué, dans la colonne E, il peut y avoir des cellules vides, entre deux cellules pleines. La seule chose que je suis sûr, c'est que la cellule E(n) sera vide, lorsque la cellule D(n) ou F(n), qui sont les dernières cellules calculées, seront pleines. Il n'y a jamais de cellules vides entre 2 cellules pleines dans la colonne D.

Le calcul de la somme F5:F(n) doit se faire, lorsque la cellule E(n-1) aura été saisie.

Merci encore pour ton aide.

Bonne journée.

Alors, essaie cette nouvelle version :

31exemple-v2.zip (19.57 Ko)

Bye !

Merci beaucoup gmb.

C'est exactement ça que je voulais.

Très bonne journée.

Bonjour gmb, bonjour le forum,

Désolé de te solliciter à nouveau pour cette macro, mais j'ai un petit soucis.

En fait cette macro, vient à la suite d'autres macros qui utilisent la procédure Calculate (Private Sub Worksheet_Calculate()) car les valeurs de certaines cellules sont calculées par formules venant d'une autre feuille de calcul, et dans ce cas la macro bloque à l'instruction :

If Target.Count > 1 Then GoTo fin

avec le message suivant :

"Erreur de compilation. Variable non définie"

N'étant pas assez calé en VBA je ne trouve pas la solution.

Pourrais-tu m'aider à nouveau.

Merci.

Bonjour

Désolé mais pour corriger un bug, il faut que je puisse le reproduire. Donc , sans ton vrai fichier, je ne vois pas comment faire.

Tu peux toujours essayer de supprimer l'instruction qui boque mais sans garantie....

Bye !

Re-bonjour gmb,

Je te joins le fichier exemple V2(2) avec la macro qui pose problème. Tout le reste fonctionne.

Merci encore.


Re-bonjour gmb,

Je te joins le fichier exemple V2(2) avec la macro qui pose problème. Tout le reste fonctionne.

Merci encore.

7exemple-v2-2.zip (17.23 Ko)
8exemple-v2-2.zip (17.23 Ko)

Les macros événementielles'' Worksheet_Calculate()'' et ''Worksheet_Change'' sont deux macros différentes qui ne fonctionnent pas de la même façon. La deuxième dispose de l'argument target que n'a pas la première.

Il te faut donc laisser ces deux macros distinctes. Elles s'exécuteront toutes les deux, l'une après l'autre, en commençant par la première.

OK ?

Bye !

13exemple-v3.zip (17.66 Ko)

Bonjour gmb,

Merci encore pour ton aide. Je ne savais pas qu'on pouvais avoir plusieurs types de macros pour la même feuille.

Petite question : à quoi sert la 3ème macro

Sub Evenement()

Tous mes vœux pour la nouvelle année.

Bonjour

Sergio33600 a écrit :

à quoi sert la 3ème macro Sub Evenement() Application.EnableEvents = TrueEnd Sub

Lorsqu’on écrit une macro événementielle, on met en tout début une instruction qui évite le déclenchement automatique qui risque d’être indésirable en provoquant des boucles sans fins.

C’est le rôle de :

Application.EnableEvents = False

Et juste avant de terminer, on rétablit le déclenchement automatique par :

Application.EnableEvents = True

Mais, lorsqu’on met au point la macro, il arrive qu’on s’arrête avant d’atteindre cette 2° instruction.

Et les macros événementielles ne se déclenchent plus.

Il y a alors 2 solutions : fermer Excel et le rouvrir ou bien disposer de cette mini macro que l’on exécute pour rétablir le fonctionnement normal.

OK ?

Bye !

OK. Merci.

Bonne journée.

Bonsoir gmb,

Je reviens vers toi pour mon problème.

Lorsque je rajoute des lignes avec du texte (lignes 4 et 38) ça ne marche plus.

Je souhaiterais limiter la macro des lignes 5 à 34 uniquement.

Peux-tu me rendre ce petit service.

Merci.

Bonjour

Nouvelle version à tester.

La ligne 4 ne devait pas poser de problème ; pour les lignes hors du cadre, c'est modifié.

Bye !

Bonjour gmb,

C'est parfait.

Merci encore pour ton aide.

Très bonne journée.

Rechercher des sujets similaires à "code vba formule trouver derniere pleine"