Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro : insérer formule selon couleur de fond

  • Initiateur de la discussion Initiateur de la discussion babacool
  • Date de début Date de début

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 !

babacool

XLDnaute Nouveau
Bonjour à tous,

Je m'en remets à vous car je cale depuis 2h à chercher un code VBA pour réaliser l'action suivante :

je souhaiterais insérer des formules en ligne 5 en fonction de la couleur de fond de la ligne 1. Les formules sont différentes selon la couleur de fond trouvée en ligne 1 (mais les formules sont les mêmes pour une même plage de couleur).

La difficulté est que les plages de couleur sont variables (actuellement dans l'exemple, j'ai mis 4 colonnes, mais cela pourrait devenir 10 ou 20 colonnes).

Merci par avance pour l'aide que vous pourrez m'apporter.
 

Pièces jointes

Re : Macro : insérer formule selon couleur de fond

JHA,

La couleur de fond est figée. Par exemple sur le ficher démo actuel, la plage A1 à D1 c'est du bleu. S'il faut par la suite insérer des colonnes, l'insertion s'effectuera à l'intérieur de la plage A1😀1, donc le bleu initial demeurera dans la colonne insérée.

Merci.
 
Re : Macro : insérer formule selon couleur de fond

Bonjour à tous,

Ci joint un exemple de Jacques Boisgontier (Formation Excel VBA JB), vois si cela peut te servir.

je t'ai mis également les N° des code couleur dans l'onglet "Palette couleur"

JHA
 

Pièces jointes

Re : Macro : insérer formule selon couleur de fond

Bonjour babacool, salut JHA,

Il faut bien sûr établir d'abord un tableau de correspondance entre les couleurs et les formules.

Je l'ai fait dans la 1ère feuille.

Ensuite, pour la 2ème feuille, la macro est simple :

Code:
Sub Formules()
'Feuil1 et Feuil2 sont les CodeName des feuilles
Dim coul As Range, plage As Range, p As Range, c As Range
Set coul = Feuil1.[A1:A3]
Set plage = Intersect(Feuil2.[1:1], Feuil2.UsedRange)
For Each p In plage
  For Each c In coul
    If p.Interior.Color = c.Interior.Color Then
      p(5) = c(1, 2)
      Exit For
    End If
  Next
Next
End Sub
A+
 

Pièces jointes

Re : Macro : insérer formule selon couleur de fond

Re,

Avec de "vraies" formules dans le fichier (2) :

Code:
Sub Formules()
'Feuil1 et Feuil2 sont les CodeName des feuilles
Dim coul As Range, plage As Range, p As Range, c As Range
Set coul = Feuil1.[A1:A3]
Set plage = Intersect(Feuil2.[1:1], Feuil2.UsedRange)
For Each p In plage
  For Each c In coul
    If p.Interior.Color = c.Interior.Color Then
      p(5).FormulaR1C1 = c(1, 2).Value
      Exit For
    End If
  Next
Next
End Sub
Voir aussi le fichier (2 bis), l'entrée des formules est différente.

A+
 

Pièces jointes

Re : Macro : insérer formule selon couleur de fond

Bonjour babacool, le forum,

On peut aussi faire exécuter le code par une macro Worksheet_Change :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Feuil1 est le CodeName de la feuille
Dim coul As Range, plage As Range, p As Range, c As Range
Set coul = Feuil1.[A1:A3]
Set plage = Intersect([1:1], Me.UsedRange)
Application.EnableEvents = False 'désactive les événements
For Each p In plage
  For Each c In coul
    If p.Interior.Color = c.Interior.Color Then
      p(5).FormulaR1C1 = c(1, 2).Value
      Exit For
    End If
  Next
Next
Application.EnableEvents = True
End Sub
Fichier (3).

A+
 

Pièces jointes

- 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
4
Affichages
265
Réponses
7
Affichages
301
  • Question Question
Microsoft 365 Insertion de photo
Réponses
14
Affichages
691
Réponses
0
Affichages
429
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…