Problème avec des appels 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 à 12:00
chris281069 Messages postés 9 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 27 octobre 2005 - 24 oct. 2005 à 14:57
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

7 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
20 oct. 2005 à 15:35
Utilisation : ChangeFormat "A1",6
J'ai essayer d'appeler la fonction ChangeFormat à partir de la feuille1, feuille2 et 3 et la couleur s'applique bien sur la cellule A1 de la feuille 2 !
Test et tiens moi au courant !
J'ai refait ta fonction ChangeFormat

Public Sub ChangeFormat(Adr As String, Couleur As Integer)


Worksheets(2).Select
Range(Adr).Interior.ColorIndex = Couleur


End Sub


Si la réponse te conviens merci de l'accepter
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:38
désolé ca marche pas

pour vérifier j'ai mis un msgbox après la commande colorindex

Public Sub ChangeFormat(Adr As String, Couleur As Integer)


Worksheets(2).Select
Range(Adr).Interior.ColorIndex = Couleur
MsgBox "paramètres adr= " & Adr & " paramètre couleur= " & Couleur

End Sub

les paramètres sont bien transmis mais il n'y a pas de coloration du fond je pense que c'est un problème de la méthode select et je n'arrive pas à le comprendre

débutant
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
20 oct. 2005 à 16:52
dans quel condition as tu essayé ta fonction ??????

car si tu met un bouton sur ta feuil1 et que tu met le code suivant ChangeFormat "A1",6 la cellule A1 de la feuille 2 passe en jaune sa c'est claire

au lieu de mettre des msgbox appuis sur f8 ensuite pour executer en pas à pas
et dans l'editeur vba dans le menu affichage coche fenetre variables locales tu verras mieux ce qui se passe ligne par ligne dans ton code
0
chris281069 Messages postés 9 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 27 octobre 2005
20 oct. 2005 à 17:05
Ma fonction

"Function Classement(NoteElève As Range, NoteMention As Range) As String"
est inseré dans une cellule feuille2 "b9"=Classement(C7;Feuil3!$C9:$C28)
Cette fonction prend en paramètre une noteélève en feuille2 b7 et une notemention en feuille3 Range $C9:$C28 .
le but est de faire la comparaison entre la noteélève et la notemention pour modifier la couleur de fond de cette cellule, celle la même qui contient la formule. la fonction est donc appelée à chaque fois que la feuille est recalculer.

débutant
0

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

Posez votre question
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
20 oct. 2005 à 17:33
ok, j'ai tout compris mais pas simple à reproduire à partir de rien
as-tu la possibilité de m'envoyer une partie de ton fichier excel (avec des notes et des mentions bidons) ?
si oui contact moi en privée
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
24 oct. 2005 à 01:44
Si tu as la solution merci de la faire connaitre
0
chris281069 Messages postés 9 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 27 octobre 2005
24 oct. 2005 à 14:57
Non pour l'instant je n'arrive pas à obtenir de résultat. Malgrès le peu de connaissance que j'ai en VBA je reste convaincu qu'il s'agit d'un problème de selection (méthode SELECT) lorsqu'elle est appelée par une procédure.

débutant
0
Rejoignez-nous