Microsoft 365 recopie avec mise en forme

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

charles.ehrhard

XLDnaute Nouveau
bonjour,
je ne sais pas si vous pouvez m'aider, mais moi je seche !

j'ai une matrice de 2 colonnes avec en colonne A le code et en colonne B la couleur de la cellule à appliquer
ma fonction recherchev va bien m'afficher le résultat de la colonne B en trouvant le txt dans A, mais jamais la couleur.
est ce qu'il est possible de recopier avec la mise en forme ?
ou alors un truc du genre si trouve xx dans A alors copie B avec la mise en forme ?
comme j'ai 150 codes et couleurs différentes et que les codes augmentent en nb, une mise en forme condi est juste trop longue.

merci d'avance
 
Bonjour.
Une formule ne peut rien renvoyer d'autre que la valeur de la cellule qui la porte.
Cependant une fonction personnalisée peut se débrouiller pour ranger une consigne dans une collection qui sera traitée en dehors des calculs via l'évènement Workbook_SheetCalculate.
Remarque: 150 couleurs ça fait beaucoup ! Êtes-vous sûr que vous arrivez à toutes les distinguer les unes des autres ?
 
Bonsoir.
Exemple de fonction perso reproduisant la couleur :
Dans un module standard :
VB:
Function RechCoul(ByVal Arg, ByVal Rng As Range)
   Dim Cel As Range
   On Error Resume Next
   Set Cel = Rng(WorksheetFunction.Match(Arg, Rng.Columns(1), 0), 2)
   If Err Then
      RechCoul = CVErr(xlErrNA)
      ThisWorkbook.Consigne Application.Caller, &HBABABA
   Else
      RechCoul = Cel.Value
      ThisWorkbook.Consigne Application.Caller, Cel.Interior.Color
      End If
   End Function
Dans le module ThisWorkbook :
VB:
Private Cln As New Collection
Public Sub Consigne(ByVal Cel As Range, ByVal Coul As Long)
   Cln.Add Array(Cel, Coul)
   End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
   Dim T()
   Do While Cln.Count > 0
      T = Cln(1): Cln.Remove 1
      T(0).Interior.Color = T(1)
      Loop
   End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
76
Réponses
8
Affichages
115
Réponses
3
Affichages
260
Retour