Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

copie de la couleur de cellule

2 réponses
Avatar
jpkochli
Bonjour à tou(te)s

je dispose d'une (petite) feuille excel de type
concours(lieu+date+juge) A B C ... 20
concours (et 7 Juges différents)
concurrents 1 centaine (4 concours maxi)
1
2...

Le classement final : Somme des 2 meilleurs résultats sous 2 Juges #.
Ce n'est pas la gestion du BHV, donc en simplifié, je calcule
la somme des "GRANDE.VALEUR" . (1 et 2)
Pour les Juges... Je pensais qu'en affectant une couleur par Juge (7 maxi!)
Existe-t il un moyen identique à "Grande.Valeur" qui me COPIE la cellule
(avec son format) et non pas sa valeur, pour me permettre de vérifier SI
les juges sont bien différents.

J'indique que cette feuille m'est envoyée "telle quelle" aprés chaque
concours,
pour affichage de résultats sur le Web.

Merci d'avance
Kjp

2 réponses

Avatar
PMO
Bonjour,

Voilà ce que j'ai compris:
Dans une plage où vous utilisez la fonction GRANDE.VALEUR vous
voulez retrouver la cellule du rang 1 (ou 2 ou …) et sa couleur de fonds.

Si c'est bien cela alors:
Supposons une plage A1:F20 où la plus grande valeur est 36556,
située en C15 (par exemple), que le fonds de cette cellule est rouge
et que vous tapiez en A30 =GRANDE.VALEUR(A1:F20;1)
pour y obtenir 36556 sur fonds rouge voici une solution en VBA.

1) Copiez le code suivant dans un module Standard
**********
Public PMO_InteriorColor As Integer
Public PMO_Feuille As String
Public PMO_Adresse As String
Public PMO_Bool As Boolean
'__________________________
Function PMO_GRANDEVALEUR(Plage As Range, Rang As Integer) As Double
Dim R As Range
Dim x#
x# = Application.WorksheetFunction.Large(Plage, Rang)
PMO_Feuille = Application.Caller.Parent.Name
PMO_Adresse = Application.Caller.Address
For Each R In Plage
If R = x# Then
PMO_InteriorColor = R.Interior.ColorIndex
PMO_Bool = True
Exit For
End If
Next R
PMO_GRANDEVALEUR = x#
End Function
**********

2) Copiez le code suivant dans ThisWorkbook
**********
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If PMO_Bool Then
Sheets(PMO_Feuille).Range(PMO_Adresse) _
.Interior.ColorIndex = PMO_InteriorColor
PMO_Bool = False
End If
End Sub
**********

3) Au lieu d'utiliser la fonction GRANDE.VALEUR
utilisez la fonction personnalisée PMO_GRANDEVALEUR
qui à les mêmes paramètres.

Cordialement.

--
PMO
Patrick Morange



Bonjour à tou(te)s

je dispose d'une (petite) feuille excel de type
concours(lieu+date+juge) A B C ... 20
concours (et 7 Juges différents)
concurrents 1 centaine (4 concours maxi)
1
2...

Le classement final : Somme des 2 meilleurs résultats sous 2 Juges #.
Ce n'est pas la gestion du BHV, donc en simplifié, je calcule
la somme des "GRANDE.VALEUR" . (1 et 2)
Pour les Juges... Je pensais qu'en affectant une couleur par Juge (7 maxi!)
Existe-t il un moyen identique à "Grande.Valeur" qui me COPIE la cellule
(avec son format) et non pas sa valeur, pour me permettre de vérifier SI
les juges sont bien différents.

J'indique que cette feuille m'est envoyée "telle quelle" aprés chaque
concours,
pour affichage de résultats sur le Web.

Merci d'avance
Kjp








Avatar
jpkochli
Merci beaucoup pour cette réponse.
Je vais l'appliquer.

Kjp



"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:
Bonjour,

Voilà ce que j'ai compris:
Dans une plage où vous utilisez la fonction GRANDE.VALEUR vous
voulez retrouver la cellule du rang 1 (ou 2 ou .) et sa couleur de fonds.

Si c'est bien cela alors:
Supposons une plage A1:F20 où la plus grande valeur est 36556,
située en C15 (par exemple), que le fonds de cette cellule est rouge
et que vous tapiez en A30 =GRANDE.VALEUR(A1:F20;1)
pour y obtenir 36556 sur fonds rouge voici une solution en VBA.

1) Copiez le code suivant dans un module Standard
**********
Public PMO_InteriorColor As Integer
Public PMO_Feuille As String
Public PMO_Adresse As String
Public PMO_Bool As Boolean
'__________________________
Function PMO_GRANDEVALEUR(Plage As Range, Rang As Integer) As Double
Dim R As Range
Dim x#
x# = Application.WorksheetFunction.Large(Plage, Rang)
PMO_Feuille = Application.Caller.Parent.Name
PMO_Adresse = Application.Caller.Address
For Each R In Plage
If R = x# Then
PMO_InteriorColor = R.Interior.ColorIndex
PMO_Bool = True
Exit For
End If
Next R
PMO_GRANDEVALEUR = x#
End Function
**********

2) Copiez le code suivant dans ThisWorkbook
**********
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If PMO_Bool Then
Sheets(PMO_Feuille).Range(PMO_Adresse) _
.Interior.ColorIndex = PMO_InteriorColor
PMO_Bool = False
End If
End Sub
**********

3) Au lieu d'utiliser la fonction GRANDE.VALEUR
utilisez la fonction personnalisée PMO_GRANDEVALEUR
qui à les mêmes paramètres.

Cordialement.

--
PMO
Patrick Morange



Bonjour à tou(te)s

je dispose d'une (petite) feuille excel de type
concours(lieu+date+juge) A B C ...
20
concours (et 7 Juges différents)
concurrents 1 centaine (4 concours maxi)
1
2...

Le classement final : Somme des 2 meilleurs résultats sous 2 Juges #.
Ce n'est pas la gestion du BHV, donc en simplifié, je calcule
la somme des "GRANDE.VALEUR" . (1 et 2)
Pour les Juges... Je pensais qu'en affectant une couleur par Juge (7
maxi!)
Existe-t il un moyen identique à "Grande.Valeur" qui me COPIE la cellule
(avec son format) et non pas sa valeur, pour me permettre de vérifier SI
les juges sont bien différents.

J'indique que cette feuille m'est envoyée "telle quelle" aprés chaque
concours,
pour affichage de résultats sur le Web.

Merci d'avance
Kjp