chris281069
Messages postés9Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention27 octobre 2005
-
20 oct. 2005 à 12:00
chris281069
Messages postés9Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention27 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
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 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)
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
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 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
chris281069
Messages postés9Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention27 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 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
chris281069
Messages postés9Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention27 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.