chris281069
Messages postés9Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention27 octobre 2005
-
20 oct. 2005 à 13:53
micmerle
Messages postés32Date d'inscriptionmercredi 24 mars 2004StatutMembreDernière intervention 3 août 2006
-
31 mars 2006 à 18:26
Bonjour,
voilà lorsque j'appelle la proc changeformat () avec un "call changeformat ("a1",6)" a partir de la fenetre d'execution du VBA editor la cellule a1 prend la couleur de fond colorindex 6 donc jusqu'ici tout va bien .....
Mon problème est le suivant lorsque cette appel est effectué à partir d'une fonction ou d'une autre procedure du module CA MARCHE PLUS !!!
SVP quelqu'un peut-il m'aider car c'est mon premier module en VBA et la je bloque complètement
Merci
merci
chris un débutant
ci dessous la copie de l'ensemble de mon module vba avec les differentes procédures et functions
Public Adresse As String
Public IndexCouleur As Integer
Function mention(NoteElève As Range, NoteMention As Range) As String
For Each Cell In NoteMention
If Cell = Int(NoteElève) Then
mention = Cell.Offset(0, 1).Value
End If
Next Cell
End Function
Function Classement(NoteElève As Range, NoteMention As Range) As String
For Each Cell In NoteMention
If Cell = Int(NoteElève) Then
IndexCouleur = Cell.Offset(0, 2).Interior.ColorIndex
Adresse = Adr()
End If
Next Cell
Classement = ""
Call ChangeFormat(Adresse, IndexCouleur)
End Function
Function Adr()
Adr = Application.ThisCell.Address
End Function
Sub ChangeFormat(Adr As String, Couleur As Integer)
Dim Cellule As Range
For Each Cellule In Range(Adr)
Worksheets("Feuil2").Activate
Worksheets("Feuil2").Select
Cellule.Select
Selection.Interior.ColorIndex = Couleur
Next Cellule
End Sub
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 20 oct. 2005 à 14:07
Sub ChangeFormat(Adr As String, Couleur As Integer)
Dim Cellule As Range
For Each Cellule In Worksheets("Feuil2").Range(Adr)
Worksheets("Feuil2").Activate
Worksheets("Feuil2").Select
Cellule.Select
Selection.Interior.ColorIndex = Couleur
Next Cellule
End Sub
micmerle
Messages postés32Date d'inscriptionmercredi 24 mars 2004StatutMembreDernière intervention 3 août 2006 31 mars 2006 à 15:47
Bonjour,
C'est vieux et j'espère q c'est OK maintenant. Au cas où: changer une cellule (même son format je pense) à parttir d'une fonction est dangereux (au mieux, Excel marche de tps en tps, au pire il plante).
Si tu as ce genre de problème la seule solution est d'appeler la macro de manière asynchrone dans ta fonction. Pour faire ca, VBA donne la procédure Application.onTime sinon faudra faire une dll (sais pas trop comment mais c'est probab le mieux).
Michael
PS: je regardais ce forum, car cherche à catcher les événements de changement de valeur dans une cellule pour la colorier en fonction de sa valeur. Si tu as une idée merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?