[XL 2013-2016] Problème avec le renseignement d'une formule dans une case

Bonjour,

Je viens vers vous pour un petit problème de rien du tout, mais que je n'arrive pas à résoudre sans intervention manuelle.

Le bout de code qui me pose problème :

Range("N" & Lastlig).Formula = "=SOMME(N10:N" & Lastlign & ")"

Définitions de Lastlig et Lastlign (mais les deux marchent parfaitement le problème ne vient pas de là).

Lastlig = Cells(Rows.Count, col).End(xlUp).Row

Lastlign = Lastlig - 3

Alors je vois venir la première interrogation : Pourquoi renseigner la formule SOMME au lieu d'utiliser

Application.WorksheetFunction.Sum()

Et bien après utilisation de la macro, le document créé peut subir des modifications, or une formule met à jour automatiquement les résultats, alors que la macro non (j'entends par là qu'il faut la relancer). Il faudrait alors farfouiller dans les données brutes traitées pour que le document créé ait les bonnes valeurs... C'est une perte de temps et c'est ce que je veux éviter.

Ensuite, pourquoi ne pas joindre l'ensemble du code ? Hé bien la macro fait tout plein de choses qui n'ont rien à voir avec le problème (tout le reste marche sauf ça). J' estime donc inutile de joindre l'ensemble du code. Et puis il est très mal écrit et pas optimisé donc j'aurais un peu honte lol.

Mais si vraiment il s'avère par le suite nécessaire de le transmettre, je le ferai (mais ça m'étonnerait).

Maintenant, venons en au problème : La formule SOMME est correctement renseignée dans la case que je veux (pas d'erreur de syntaxe ou autre). Pourtant, la cellule qui contient la formule affiche "#NOM?". Si je clique sur la cellule, sans rien modifier, et juste j'appuie sur entrée, le résultat de la formule s'affiche, mais pas avant que j'intervienne manuellement.

Pouvez-vous me dire pourquoi ? Visiblement le problème ne vient pas de la macro, mais je pourrais ajouter un bout de code pour éviter de devoir à chaque fois intervenir manuellement ? Je ne sais pas ce qui peut faire ça.

MERCI

Bonjour Harkebe, le forum,

Un essai....

Sub test()
 Dim Lastlig As Long, Lastlign As Long, col As Integer, plage As Range, total

     col = 14
 Lastlig = Cells(Rows.Count, col).End(xlUp).Row
Lastlign = Lastlig - 3

Set plage = Range("N10:N" & Lastlign)
    total = Application.Sum(plage)

Range("N" & Lastlig + 1) = total
End Sub
2classeur1.xlsm (18.22 Ko)

Cordialement,

Bonjour xorsankukai et merci pour votre réponse.

Votre méthode je l'utilisais avec de renseigner la formule SOMME, mais j'avais ensuite changé, à cause d'un problème d'actualisation.

Je vous transmets donc documents test et les deux versions de ma macro (du coup on y arrive ), l'une enregistre le classeur résultat et le ferme, l'autre non.

Vous verrez : quand on enregistre le classeur résultat, la colonne créée dans l'onglet journal actualise les valeurs par les bonnes.

Peut être que j'aurais du attaquer le problème par là...

J'avais essayé avec find et j'avais le même résultat.

Principe de fonctionnement : le classeur macro se trouve dans le même dossier que les deux documents tests, les copie dans un nouvel onglet et fait diverses opérations.

Pensez bien à renseigner votre répertoire où se situent les classeurs dans la macro.

5jn-test.zip (19.84 Ko)
3gl-test.xls (1.02 Ko)
4doc-explic.xlsm (22.36 Ko)

Bien à vous.

Rechercher des sujets similaires à "2013 2016 probleme renseignement formule case"