Problème appel de proc

chris281069 Messages postés 9 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 27 octobre 2005 - 20 oct. 2005 à 13:53
micmerle Messages postés 32 Date d'inscription mercredi 24 mars 2004 Statut Membre Derniè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

Chris un débutant

débutant

6 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
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

BasicInstinct
0
chris281069 Messages postés 9 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 27 octobre 2005
20 oct. 2005 à 16:22
Merci mais ca marche toujours pas! apparement les cellules ne sont pas selectionnees

débutant
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
20 oct. 2005 à 17:31
'essaie comme ca

Sub ChangeFormat(Adr As String, Couleur As Integer)

Worksheets("Feuil2").Select



ActiveSheet.Range(adr).Interior.ColorIndex = couleur
end sub

BasicInstinct
0
micmerle Messages postés 32 Date d'inscription mercredi 24 mars 2004 Statut Membre Derniè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.
0

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

Posez votre question
chris281069 Messages postés 9 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 27 octobre 2005
31 mars 2006 à 16:41
Envoie moi ton email je te transmets un .xls qui devrait approcher de la solution.

A+
Christophe

débutant
0
micmerle Messages postés 32 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 3 août 2006
31 mars 2006 à 18:26
Merci beaucoup et bon we![mailto:mmerlange@yahoo.com
mmerlange@yahoo.com]
0
Rejoignez-nous