Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recalcul cellule via macro

noxunas

XLDnaute Nouveau
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.
 

noxunas

XLDnaute Nouveau
Re : Recalcul cellule via macro

ça ne fonctionne pas (je suis sur Excel 2003 PRO), j'ai saisi :

Range("B4").Select
Selection.NumberFormat = "General"
ActiveCell.Formula = Replace(ActiveCell.Value, "d x ", "'Lucie-2010'!C36*")


=> erreur de compilation (nb d'args incorrect ou affectation de propriété
incorrecte)
 

tototiti2008

XLDnaute Barbatruc
Re : Recalcul cellule via macro

Re,

Moi aussi j'ai un Excel 2003 Pro

La "fausse" formule n'aurait-elle pas été saisie avec une apostrophe au début ?

un bout de fichier exemple nous éclairerait surement
 

tototiti2008

XLDnaute Barbatruc
Re : Recalcul cellule via macro

Re,

et pas de signe =, donc peu de chance qu'il calcule...
Si tu met ta cellule au format Texte (avec Format-Cellule) et que tu tapes

Code:
=d x 0,387

(pas d'apostrophe)

ça arrange les choses ?
 

noxunas

XLDnaute Nouveau
Re : Recalcul cellule via macro

si je transforme à la main la cellule pour la passer de :
'd x 0,387 à = d x 0,387

et que j'exécute ensuite la macro :

Range("B4").Select
Selection.NumberFormat = "General"
ActiveCell.Formula = Replace(ActiveCell.Value, "d x ", "'Lucie-2010'!C36*")


toujours la même erreur de compilation...
 

noxunas

XLDnaute Nouveau
Re : Recalcul cellule via macro

Sub test()
Dim a As String
Dim cel As Range
Application.ScreenUpdating = False
a = "C2"
For Each cel In Range("B414")
With cel
.Replace What:="(d ", Replacement:="=(" & a
.Replace What:="d ", Replacement:="=" & a
.Replace What:="x ", Replacement:="*"
.Replace What:=" ", Replacement:=""
.Replace What:=",", Replacement:="."
.NumberFormat = "General"
.Formula = .Formula
End With
Next
End Sub
 

Discussions similaires

Réponses
6
Affichages
290
Réponses
16
Affichages
588
Réponses
3
Affichages
326
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…