[VBA Excel] exporter cellules en couleur

Résolu/Fermé
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 - 7 mai 2007 à 00:43
patbl Messages postés 83 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 19 mai 2010 - 13 déc. 2007 à 11:20
VBA Excel - importer / exporter des cellules en couleur

bonjour ou bonsoir à toutes / tous !

J'ai un soucis ! Plusieurs jours/heures/aides pour essayer de faire quelque chose, j'explique !

J'ai un tableau excel, 3 feuilles, sur la première un tableau avec plein de listes déroulantes pour remplir ce dernier facilement (just clic), sur la deuxième, les infos pour les listes déroulantes, sur la troisième feuille toutes les infos de la première feuille sont retransmises dessus pour l'impression de cette dernière.
Le "hic", dans la feuille 2, j'ai 3 infos pour une liste déroulante : "CA, C, Eq", lorsque je coche une de ces infos, j'aimerais que sur la feuille 3, dans la cellule correspondante s'affiche une couleur de fond prédéfinie.
Pour ceux qui ne pige pas, en gros, CA (fond jaune), C (fond rouge), Eq (fond gris). Lorsque je clic sur CA (fond de cellule jaune), apparaisse dans la feuille 3 non seulement CA (là n'est pas le soucis car ca s'affiche) mais surtout la cellule se colore en jaune.

J'ai un ami qui m'a codé un truc (qui marche presque :p) mais une fois mis, je n'arrive plus à configurer les autres listes déroulantes .... et en plus c'est comme si les 2 feuilles (une et trois) sont sélectionnées, donc ca me pose un énorme problème, peut etre quelqu'un est déjà passé par là, personnellement je ne sais pas "codé" ....

Voici le code :

Private Sub ComboBox5_Click()
Dim a As String, c As Integer
a = ComboBox5.Value
If a = "CA" Or a = "R - CA" Then
c = 6
ElseIf a = "C" Or a = "R - C" Then
c = 3
ElseIf a = "Eq" Or a = "R - Eq" Then
c = 15
End If
color (c)
End Sub

Sub color(c As Integer)
Worksheets("fdgi").Select Range("C7").Value
With Selection.Interior
.ColorIndex = c
.Pattern = xlSolid
End With
End Sub

Merci pour votre attention

J0K0
A voir également:

3 réponses

patbl Messages postés 83 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 19 mai 2010 4
13 déc. 2007 à 11:20
bonjour
coment faites vous pour renvoyer la valeur et le fond d'une cellule dans une feulle sommaire j'ai 12 feuilles identique mais des contenus en heures et en couleurs differentes comment puis je faire pour importer mes 12 feuilles dans une seule " sommaire "
je galere depuis des jours!

merci de votre aide à bientôt 
patricia
3
Bonjour JOKO,

Essaies ce code modifié :

Private Sub ComboBox5_Click() 
Dim a As String
a = ComboBox5.Value 
Select Case a
   Case "CA", "R - CA"
      c = 6 
   Case "C", "R - C"
      c = 3 
   Case "Eq", "R - Eq"
      c = 15 
End Select
color c 
End Sub 

Sub color(c As Byte) 
With Worksheets("fdgi").Range("C7")
   .Interior .ColorIndex = c 
   .Pattern = xlSolid 
End With 
End Sub


Petites précisions :

- Les codes couleurs étant limités à 256, définir c en 'Byte' optimise la mémoire
- Il n'est pas nécessaire de sélectionner les cellules cibles pour appliquer un format particulier (ça évite bien des soucis)
- Utiliser 'Select Case ... End Select' au lieu de 'If ... Then' imbriqués optimise le code et facilite une relecture ultérieure

Espérant avoir répondu à ton attente.
Cordialement.

Papou
1
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
7 mai 2007 à 21:30
Salut Papou !

MERCI d'avoir répondu au post ... aujourd'hui j'ai posé la question à un collègue de boulot s'il avait une idée, bisarrement il était déjà passé par là mais pour des chiffres avec une coloration de cellules, il m'expliquait que dans Excel y'a des choses toutes faites pour ce genre d'astuces, du coup j'ai fouiné et j'suis tombé sur LA chose bête :s
"Format / Mise en forme conditionnelle..."

Donc si on sélectionne les cellules, on va dans Format, Mise en forme conditionnelle..., Si les cellules sont égales à : ="CA", format : fond jaune ; eh ben dès qu'une des cellules sélectionnées contient CA, le fond devient jaune et s'enlève si autre chose apparait.

Facile, magique, mon illumination ^^

MERCI beaucoup, j'vais garder cependant le code sous le coude, peut être qu'il me servira à bien comprendre le langage pour coder :O

Bonne soirée !

[Résolu]
1