Recalcul cellule via macro

Bonjour à tous,

voici mon problème :

j'ai une cellule qui contient la donnée texte : "=d+10".

Par une macro, cette cellule est tranformée en "=c2+10" puis basculer en mode "standard" pour le calcul effectif.

Le seul pb c'est que ma cellule n'est ensuite pas calculer !

Il faut que j'aille manuellement dans la cellule pour la revalider et là elle est calculée.

D'où ma question :

Comment faire pour que dans ma macro, ma cellule soit ensuite calculée après le renommage :

passage du "d" en "c2" puis calcul effectif (pour éviter que j'aille à la mano la revalider) ???

Merci à tous pour vos réponses.

Bonjour,

Comment faire pour que dans ma macro, ma cellule soit ensuite calculée après le renommage :

Merci de mettre ton fichier en ligne ou ton code. Ce sera plus facile.

Amicalement

Bonjour et bienvenue,

Peux-tu joindre la macro complète ou le fichier ?

Amicalement

Claude

Bonjour Forum,

Peut-être en rajoutant la commande "Calculate" dans ton code après ta ligne de calculs.

A te relire.

Amicalement

Bonjour,

je te conseille de passer en mode standard, AVANT de mettre ta formule par la macro....

bonne journée

Edit, bonjour Dan et Claude, et Fabrice, également

re,

Lol ! c'est ce qui s'appelle un tir groupé....

Voici mon fichier Excel en pj.

Merci pour votre aide

17fr-lucie-luc.zip (16.35 Ko)

Re,

Je voudrais que tu me confirmes une chose. En B3 par exemple, tu veux obtenir par code la valeur de la cellule C36 en feuille Lucie-2010 multipliée par 0.387 ?? (idem pour les autres ?)

A te relire

oui c'est exactement ça (en B4par exemple )...

re,

sans répondre vraiment à ta question,

J'avais fait en son temps un fichier la-dessus

suffirait de mettre à jour les barèmes (à droite de l'écran)

Amicalement

Claude

13impot.zip (17.88 Ko)

Re,

Essaie ce code à la place du tiens

Sub test()
Dim a As String
Dim cel as range
Application.ScreenUpdating = False
a = "'Lucie-2010'!C36"
For Each cel In Range("B4:D14")
With cel
    .Replace What:="(d ", Replacement:="=(" & a
     .Replace What:="d ", Replacement:="=" & a
    .Replace What:="x ", Replacement:="*"
    .Replace What:=" ", Replacement:=""
    .Replace What:=",", Replacement:="." ' **virgule remplacée par point
    .NumberFormat = "General"
    .Formula = .Formula
End With
Next
End Sub

** J'ai remplacé la virgule dans la formule par un point. A voir en fonction de ta configuration PC si la virgule est nécessaire dans les nombres avec décimale ou non.

Amicalement

sauf que dans ton fichier, les barèmes sont directement des nombres et non des formules à variable.

Bonjour à tous, noxunas, Dan, Claude, cousinhub,

Dan, ta macro fonctionne très bien. Je ne vois qu'un petit inconvénient à ce système de "remplacement", c'est que si le Nb de Kms changent, on ne peut pas relancer la macro...

Bien vérifier donc, avant de la lancer que les kms sont OK.

Bon après-midi.

Amicalement.

Merciiiiii bcp ça fonctionneee !!!

encore juste un petit truc qui reste (le autofit qui ne s'exécute pas dans ma macro) : ???

Sub test()

Dim a As String

Dim cel As Range

Application.ScreenUpdating = False

a = "'Lucie-2010'!C36"

For Each cel In Range("B4:D14")

With cel

.Replace What:="(d ", Replacement:="=(" & a

.Replace What:="d ", Replacement:="=" & a

.Replace What:="x ", Replacement:="*"

.Replace What:=" ", Replacement:=""

.Replace What:=",", Replacement:="." ' **virgule remplacée par point

.NumberFormat = "General"

.Formula = .Formula

End With

Next

Worksheets("Barème").Columns("A:D").AutoFit

End Sub

-- 25 Juin 2010, 14:37 --

j'ai réussi en faisant :

Cells.Select

Cells.EntireColumn.AutoFit

Cells.EntireRow.AutoFit

encore merci

re,

Décoche la case "retour à ligne automatique" dans Format / Cellule --> Onglet "Alignement"

Amicalement

Edit : si ok, n'oublie de cloturer le fil en cliquant sur le V de couleur vert à coté du bouton Editer.

Rechercher des sujets similaires à "recalcul via macro"