Rafraichir excel

tortuegenie Messages postés 110 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 21 octobre 2008 - 3 avril 2006 à 15:58
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 - 3 avril 2006 à 18:02
Bonjour à tous, je souhaite rafraichir excel après avoir fait une méthode.
Voici le code:

Sub FR_Replace()
nMaxLine = (WorksheetFunction.CountA(Columns("b:b")))
For I = 2 To nMaxLine
test = Range("B" & I).Value
valueB = CStr(Range("B" & I).Value)
test = Replace(valueB, ",", ".")
Next I
End Sub

Cette fonction me permet de remplacer , par .
La variable test est à jour dans le déboggeur mais excel n'effectue pas le rafraichissement.
Comment rafraichir excel dans ma fonction.

Merci d'avance

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 avril 2006 à 16:41
Salut TortueGenie,


Et en essayant un truc du genre :
Application.Activate
SendKeys "{F5}"
F5 étant le rafraichissement d'une application.

J'ai pas essayé mais ça devrait le faire !


@ ++

Mortalino
0
tortuegenie Messages postés 110 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 21 octobre 2008
3 avril 2006 à 16:48
dsl mais cela ne fonctionne pas
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 avril 2006 à 17:32
Effectivement, F5 = Atteindre et pas Actualiser dans Excel !
Par contre, l'histoire du point au lieu de la virgule, c'est à remplacer dans tes cellules ?
Si c'est le cas et si ça s'applique à tous tes nombres, changes les parametres régionaux de ton PC :

http://www.vbfrance.com/infomsg/AIDE-SVP-ERREUR-EXECUTION-13-INCOMPATIBILITE-TYPE-0_702774.aspx
j'ai mis une réponse qui explique comment les modifier

@ ++

Mortalino
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
3 avril 2006 à 18:02
2 choses :

Quand tu parles de rafraîchir dans Excel, ça sous-entend qu'Excel refait tous les calculs.
C'est fait automatiquement si dans les options, onglet calcul, tu as bien coché : calcul automatique.
Sinon, ce n'est pas F5, mais F9 qui recalcule tout. Un SendKeys "{F9}" a donc plus de chance de fonctionner :p

Mais, et c'est mon 2ème point, le pb de ton code n'est pas un pb de raffraichissement :
Si je comprends bien le code ta boucle :
- Tu récupères le contenu d'une cellule dans une variable (test)
- Tu convertis ce contenu en texte dans une 2nde variable (au passage, c'est inutile, autant faire directement test=CStr(test)
- Tu remplaces dans ta 2nde variable le point par une virgule.
Et .. c'est tout.
A quel moment tu réinjectes ta variable dans la cellule ? En fait, Excel se rafraichit bien, c'est juste que tu ne lui fournis aucune donnée à changer.
Tu devrais rajouter à la fin de ta boucle : Range("B" & I).Value = test

Pour simplifier ta boucle, tu peux donc faire :
For I = 2 To nMaxLine
Range("B" & I).value = Replace(CStr(Range("B" & I).Value), ",", ".")
Next I


Dernière chose, Mortalino a raison, si c'est juste pour un pb de "." ou de "," dans les chiffres, c'est dans les paramètres régionaux que ça se change ^^.

Molenn
0
Rejoignez-nous