Mise à jour qutomatique sur excel

Résolu
fredieuric Messages postés 24 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 2 octobre 2008 - 8 déc. 2006 à 11:20
fredieuric Messages postés 24 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 2 octobre 2008 - 8 déc. 2006 à 14:54
Bonjour à tous,

Un petit probleme:

Je dois mettre à jour des cellules d'une page excel lorsque je change certaines autre cellules... J'ai utilisé pour l'instant une Sub qui calcule la valeur desdites cellules sur l'evenement suivant:

Sub Worksheet_SelectionChange(ByVal Target As Range)

Ca marche plutôt bien, mais si je ne clique pas sur une cellule de la page (à l'ouverture du fichier sur une autre page par exemple), les cellules ne sont pas jour, et il faut que je selectionne la page, et clique sur une cellule pour obtenir la lise à jour.

Existe-t-il une fonction qui mette à jour auomatiquement tout le workbook toutes les 2 secondes par exemple, ou une manière simple de toujours avoir l'ensemble des cellules de toutes les pages à jour?

Merci une nouvelle fois pour votre aide!

6 réponses

cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
8 déc. 2006 à 12:54
Bonjour

Si ton code fonctionne comme tu le décris lorsque tu fais une modification manuelle et pas à l'ouverture de ton fichier, il me semble comprendre dès lors que le SelectionChange n'est pas appelé à l'ouverture ==> met le code qui se trouve dans cette subroutine dans une routine plus générale (par exemple Sub MetAJour) et fais un call de cette subroutine lors du Workbook_Open.

Christophe
3
fredieuric Messages postés 24 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 2 octobre 2008 1
8 déc. 2006 à 13:13
Merci cavo789, mais le fait de mettre à jour lors de l'ouverture ne suffit pas, en fait, je voudrais mettre à jour lors de tout changement sur n'importe quelle feuille...
3
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
8 déc. 2006 à 13:14
Salut,
J'ai trouvé pile-poil ce qu'il te faut (adapté d'un truc similaire que javais en stock) :
- Tu ajoutes la sub (ci-dessous) dans le module de la feuille de calcul où tu veux que ca fonctionne
- Tu remplaces Range("A1:D8") par la plage de cellule ou tu souhaites que l'opération se déroule

La modif se fait "en live" , et fonctionne même si tu y colles plusieurs valeurs en même temps.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellulesamodifier As Range, cellulecourrante As Range

'ne modifier que les cellules comprises dans un plage donnée (dans cet exemple la plage A1:D8)
Set cellulesamodifier = Application.Intersect(Target, Range("A1:D8"))
'si il y a des cellules modifiées dans la zone
If Not cellulesamodifier Is Nothing Then




'pour chaque cellule à modifier verifier si elle est déjà avec deux décimales sinon la diviser par 100
For Each cellulecourrante In cellulesamodifier.Cells
    If InStr(cellulecourrante.Value, ",") = 0 Then
        cellulecourrante.Value = cellulecourrante.Value / 100
    End If
Next
End If



End Sub


Jcbé[^]
3
fredieuric Messages postés 24 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 2 octobre 2008 1
8 déc. 2006 à 13:37
Merci pour votre aide,

mais ça ne marche toujours pas...

Existe-t-il qqchose comme:

Sub Workbook_SelectionChange(ByVal Target As Range)

évènement sur lequel je pourrais mettre à jour les cellules que je veux???

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 déc. 2006 à 14:49
Salut,

tu peux également te servir de cet évènement (dans ThisWorkBook) :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)


~ <small>[code.aspx?ID=39466 Mortalino]</small>
~

il se produit à chaque fois qu'une feuille est activé.

Que cherches-tu à faire exactement. Peux-tu donner un exemple concrêt ? (noms des feuilles, les cellules qui doivent déterminer le changement, etc..)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
fredieuric Messages postés 24 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 2 octobre 2008 1
8 déc. 2006 à 14:54
Rebonjour,

Merci à tous ceux qui ont tenté de m'aider! Vous m'avez mis sur la bonne voie, et j'ai finalement réussi à faire ce que je voulais avec l'évènement suivant:

Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Source As Range)

Bonne continuation!
0
Rejoignez-nous