Inversion couleur de cellule, impossible?

  • Initiateur de la discussion Initiateur de la discussion Jeremy992
  • 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 !

Jeremy992

XLDnaute Occasionnel
Bonjour le forum !

Voila j'ai une question a vous posé, qui attise ma curiosité car, je pense que ce que je vais demander est (oh le gros mot..) IMPOSSIBLE !

Quoiqu'il en soit, je vous expose ma question:

Est-il possible d'inverser la couleur de fond d'un cellule (fusionner ou seul) et la couleur du texte? Je m'explique...

Admettons que j'ai une cellule, avec un fond blanc et une écriture noir, et-il alors possible, de quelques manières (exemple une msgbox qui demanderai de sélectionner un cellule) d'inverser ces couleurs, ce qui amènerais donc à une cellule a fond noir avec une écriture blanche?

Merci pour ceux qui prendrons le temps de s'intéresser a ce "petit" problème 😉
 
Re : Inversion couleur de cellule, impossible?

Bonjour Jeremy, le forum,

je pense que c'est faisable...
il "suffit" de récupérer le code couleur de l'écriture et le code couleur du fond et de les inverser??? je teste et si j'y arrive je poste le fichier.

D'autres d'ici là auront sûrement répondu mais bon...

A+
Tibo
 
Re : Inversion couleur de cellule, impossible?

Bonjour titiborregan5,

Oui je pensais a ça, seulement l'objectif serais de pouvoir le faire peut importe les couleurs de la cellule, de façon simple. Je pensais à une msgbox qui demanderais de sélectionner la cellule voulu et qui effectuerais cette inversion, que le fond soit jaune avec un écriture verte, ou rouge avec un écriture bleu ou la multitude de situation différentes que l'on peu avoir ^^

Je pense que c'est là que réside la complexité du problème !
 
Re : Inversion couleur de cellule, impossible?

Re,

essaie avec ce code (tout bête finalement):
VB:
Sub test()
cel = InputBox("tapez la cellule désirée")

fond = Range(cel).Interior.ColorIndex 'récupère la couleur de fond de la cellule
lettre = Range(cel).Font.ColorIndex 'récupère la couleur de la police de la cellule

If fond < 1 Then fond = 2 'si le fond est sans couleur alors on lui dit qu'il est blanc

Range(cel).Interior.ColorIndex = lettre 'le fond prend la couleur de la lettre
Range(cel).Font.ColorIndex = fond 'la lettre prend la couleur du fond (ou blanc si fond sans couleur)

End Sub

Il faudrait juste mettre une vérif sur la cellule à renseigner en cas de mauvaise saisie !!!

Dis-nous si ça te va!

Edit: j'ai pas essayé sur une cellule vide ce que ça fait...
 
Re : Inversion couleur de cellule, impossible?

Et bien cher ami, cela fonctionne parfaitement 😉

Serait il possible de cliquer sur la cellule désiré plutôt que de la renseigner?

Au fait, petit précision qui as peut être son importance, tout ceci est dans un but de découverte et d'amélioration de ma "compréhension" d'Excel. Alors il en vas de soit que n'étant pas d'une urgence extrême pour moi, je comprendrais que d'autres choses serait peut être plus "intéressante" à faire pour vous que ça, et je ne vous en tiendrais pas rigueur bien sur 😉

Quoiqu'il en soit, je vous remercie encore de l'intérêt que vous me porter !
 
Re : Inversion couleur de cellule, impossible?

J'ai essayé avec une Inputbox de type 8 (je crois)... sans grand succès ^^

Code:
Sub test()
Dim cel As Range
Set cel = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
MsgBox (cel.Address)


 fond = Range(cel).Interior.ColorIndex 'récupère la couleur de fond de la cellule
lettre = Range(cel).Font.ColorIndex 'récupère la couleur de la police de la cellule

If fond < 1 Then fond = 2 'si le fond est sans couleur alors on lui dit qu'il est blanc

 Range(cel).Interior.ColorIndex = lettre 'le fond prend la couleur de la lettre
Range(cel).Font.ColorIndex = fond 'la lettre prend la couleur du fond (ou blanc si fond sans couleur)

End Sub
 
Re : Inversion couleur de cellule, impossible?

Bah je ne vois pas comment faire en passant par une box...

Parce que la box s'ouvre quand on change de cellule...
A moins d'avoir une box qui s'ouvre à chaque changement de cellule et qui demande si on veut inverser les couleurs de la cellule...
 
Re : Inversion couleur de cellule, impossible?

Essaie comme ça alors
VB:
Sub inversion()Dim cel As Range
Set cel = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
'MsgBox (cel.Address)




 fond = Range(cel.Address).Interior.ColorIndex 'récupère la couleur de fond de la cellule
lettre = Range(cel.Address).Font.ColorIndex 'récupère la couleur de la police de la cellule


If fond = -4142 Then fond = 2 'si le fond est sans couleur alors on lui dit qu'il est blanc
 Range(cel.Address).Interior.ColorIndex = lettre 'le fond prend la couleur de la lettre
Range(cel.Address).Font.ColorIndex = fond 'la lettre prend la couleur du fond (ou blanc si fond sans couleur)


End Sub
 
Re : Inversion couleur de cellule, impossible?

Haaaan mais oui ! Je comprend mon erreur, haha, je suis bête ^^

Bon bah tout ça fonctionne très bien, c'est donc tout à fait possible !

Et bien titiborregan5, je te remercie de ton aide 🙂
 
Re : Inversion couleur de cellule, impossible?

Je vais peut-être (surement !) abuser mais... J'ai une autre question (un cas que j'ai déjà rencontré).

J'ai des cellule fusionner, est-il possible que:

Si je déplace une cellule fusionné (ex:de 5cellules) pas dessus une autres cellule fusionnée (ou non d'ailleurs), elle soit décaler vers la droite?

Cas concret: Sur une ligne avec plusieurs cellules remplie je déplace une cellule vers la droite, toute les autres cellules ce trouvant sur la droite ce décale aussi (si il y a chevauchement !), en gardant le même espace.

Je sais pas si je suis clair :/
 
Re : Inversion couleur de cellule, impossible?

Bonsour®
Ajouter un raccourci à la macro ci-dessous

exemple : Ctrl+Maj+I
Capture.JPG

VB:
Sub INVCOL()
Dim x As Double, cell As Range
For Each cell In Selection
x = cell.Interior.Color
cell.Interior.Color = cell.Font.Color
cell.Font.Color = x
Next
End Sub
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    67.4 KB · Affichages: 66
  • Capture.JPG
    Capture.JPG
    67.4 KB · Affichages: 64
- 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

Retour