Mise a jour feuille excel

Mise a jour feuille excel - VB/VBA/VBS - Programmation

Marsh Posté le 26-04-2006 à 09:36:52    

Bonjour a tous,
 
voila, j'ai une feuille excel contenant des formules (avec lien vers fichier externe),
j'ai egalement sur mes feuilles des scripts VB permettant de changer la couleur, style ... des cellule en fonction de leur contenu.
Mon probleme est le suivant.
Lorsque je modifie une cellule, le script s'execute bien, la couleur change. (fonction Worksheet_Change et Worksheet_SelectionChange).
Par contre, le contenu de certaines cellules sont mises a jour par un fichier externe. Du coup, la couleur de la cellule ne change pas.
Il me faut la selectionner en cliquant dessus pour que ca change.
 
Si quelqu'un a une idée pour résoudre mon problème, ca serait super smpa.
 
Merci
Stephane

Reply

Marsh Posté le 26-04-2006 à 09:36:52   

Reply

Marsh Posté le 26-04-2006 à 11:04:04    

En VBA :

Application.Calculate

Reply

Marsh Posté le 26-04-2006 à 11:12:49    

Ben, ca marche pas !
J'appel cette fonction dès que je clic dans une cellule, mais pas de mise a jour des couleurs.
Je pense que cette fonction recalcul les formules de l'application mais en aucun cas n'exécute une fonction VB lié a un évenement.
Ma fonction VB qui change la couleur d'une cellule est déclenchée sur les evenements Worksheet_Change et Worksheet_SelectionChange. Seule, la cellule qui a déclenché l'evenement est modifié.
Ce qui je souhaite, c'est pouvoir declencher ma fonction pour toutes les cellules de la feuille par exemple en cliquant sur un bouton qui declencherait un traitement.
Mais je suis trop novice en VB, je ne sais pas comment le faire.
 
Merci
Stephane

Reply

Marsh Posté le 26-04-2006 à 12:38:02    

Si la "fonction VB" de changement des couleurs est déclarée en tant que Sub, alors il devrait être possible de l'appeler avec

call routine_de_changement_de_couleur

Si ça ne marche pas et que la fonction est déclarée en Private Sub, il faudrait essayer en changeant sa déclaration pour qu'elle soit en Public Sub


Message édité par olivthill le 26-04-2006 à 12:40:06
Reply

Marsh Posté le 26-04-2006 à 12:40:48    

oui, c'est le cas, par contre, je passe la reference a la cellule qui a subit le changement de selection.
Dans le cas d'un call, que puis-je passer en paramètre ?
voici la commande qu'y declenche l'appel de la routine :
 
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
      coloration Target
End Sub
 
 
Stephane


Message édité par stef29 le 26-04-2006 à 14:20:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed