Tableau de cellules et de codes couleurs d'une feuille à une autre

STEPIQ76FR

XLDnaute Nouveau
Nouveau sur le forum je vous souhaite le bonjour à tous et me présente rapidement,

J'utilise Excel depuis longtemps mais débutant en VB, j'espère trouver sur ce site des personnes ayant de la matière grise à revendre pour résoudre mon problème :

J'arrive à partir de la cellule (A1 Feuil 1) qui est colorée en jaune à faire apparaitre le code couleur 16777215 dans la cellule (A1 Feuil 2) avec la macro suivante :

Range("A1") = Worksheets("Feuil2").Range("A1").Interior.Color

Je cherche à répéter cela sur les lignes et les colonnes suivantes sans avoir à répéter la formule pour toutes les cellules. En gros, à partir d'un tableau de cellules colorées en Feuil 1 obtenir un tableau de codes couleurs en Feuil 2. Si vous pouviez me donner un exemple sur 3 lignes et 3 colonnes, je l'adapterai à mes besoins.

Merci d'avance à toutes les âmes charitables,
 
C

Compte Supprimé 979

Guest
Re : Tableau de cellules et de codes couleurs d'une feuille à une autre

Bonjour

Voici le code
Code:
Sub ListingCouleur()  Dim Col As Long, Lig As Long
  For Col = 1 To 3
    For Lig = 1 To 3
      ' Inscrire dans la feuille 2 la couleur de la cellule de la feuille 1
      Worksheets("Feuil2").Cells(Lig, Col).Interior.Color = Worksheets("Feuil1").Cells(Lig, Col).Interior.Color
    Next Lig
  Next Col
End Sub

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Tableau de cellules et de codes couleurs d'une feuille à une autre

Bonjour à tous.


Variation sur le thème : lecture de toutes les couleurs...​


ℝOGER2327
#6941


Dimanche 22 Haha 141 (Résurrection de Bosse-de-Nage - fête Suprême Seconde)
6 Brumaire An CCXXII, 1,7118h - héliotrope
2013-W43-7T04:06:30Z
 

Pièces jointes

  • Relever les couleurs.xlsm
    21.2 KB · Affichages: 72

STEPIQ76FR

XLDnaute Nouveau
Re : Tableau de cellules et de codes couleurs d'une feuille à une autre

Super BrunoM45, tu m'enlèves une épine du pied.
C'est exactement ce que je cherchai. Ton code fonctionne parfaitement (sauf que c'est des codes que je voulais en feuille 2 mais bon ne t'inquiètes pas je l'ai adapté), par contre j'ai oublié de demander si le tableau de couleur change de taille (soit plus petit, soit plus grand), comment adapter automatiquement la taille du tableau de codes en Feuil 2 à celle du tableau de couleurs de la Feuil 1.
Merci à toi pour cette réponse rapide
 

Staple1600

XLDnaute Barbatruc
Re : Tableau de cellules et de codes couleurs d'une feuille à une autre

Bonjour à tous

SEPTIQ76FR
EDITION: Oui le code est dans les feuilles (clic-droit sur l'onglet -> Visualiser le code
(Feuil1 et et Feuil2)

:confused:
Le code n'est -il pas dans le fichier de ROGER2327 ?
(Dans un module ou dans le code de la feuille)
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Tableau de cellules et de codes couleurs d'une feuille à une autre

Re...


ROGER2327, si tu pouvais m'envoyer directement le code à la place du fichier ce serait parfait.
A plus,
Le code est dans le fichier. Pour le voir :

  1. Ouvrir le classeur.
  2. Faire Clic-droit l'onglet Feuil1 (en bas à gauche de la fenêtre du classeur).
  3. Dans le menu qui apparaît, cliquer Visualiser le code.
  4. Le code de la feuille Feuil1 apparaît.
  5. Recommencer la manœuvre avec l'onglet Feuil2.
  6. Le code de la feuille Feuil2 apparaît.
  7. C'est terminé : il n'y a pas d'autre code dans le classeur.

Note sur le fonctionnement :

Le code de la feuille Feuil1 sert à mémoriser l'adresse de la dernière sélection faite par l'utilisateur dans cette feuille.

Le code de la feuille Feuil2 s'exécute à chaque activation de cette feuille. Il a deux fonctions :
  • Premièrement, il lit la couleur de fond de chaque cellule de la plage utile dans l'onglet Feuil1 et reporte la propriété Interior.Color de cette cellule dans la cellule de même adresse de l'onglet Feuil2.
    Le résultat est retourné au format hexadécimal.
    Les cellules incolores sont ignorées.
  • Deuxièmement, il sélectionne, dans l'onglet Feuil2, la même plage que la plage sélectionnée dans l'onglet Feuil1.

Si on ne veut pas de cette dernière fonctionnalité :
  • Supprimer la ligne
    VB:
            If .CelluleMémorisée <> "" Then Me.Range(.CelluleMémorisée).Select
    dans le code de la feuille Feuil2 ;
    ou bien remplacer le code de cette feuille par
    VB:
    Option Explicit
    
    Private Sub Worksheet_Activate()
    Dim Cel As Range
        Application.ScreenUpdating = False
        Me.Cells.ClearContents
        For Each Cel In Feuil1.UsedRange.Cells
            If Cel.Interior.ColorIndex <> xlColorIndexNone Then Me.Range(Cel.Address).Value = "&H" & Right$("000000" & Hex(Cel.Interior.Color), 6)
        Next
        Application.ScreenUpdating = True
    End Sub
  • On peut alors supprimer le code de la feuille Feuil1.

Enfin, si on préfère avoir la valeur décimale de la propriété Interior.Color, remplacer
VB:
        If Cel.Interior.ColorIndex <> xlColorIndexNone Then Me.Range(Cel.Address).Value = "&H" & Right$("000000" & Hex(Cel.Interior.Color), 6)
par
VB:
        If Cel.Interior.ColorIndex <> xlColorIndexNone Then Me.Range(Cel.Address).Value = Cel.Interior.Color


Bonne journée.


ℝOGER2327
#6942


Dimanche 22 Haha 141 (Résurrection de Bosse-de-Nage - fête Suprême Seconde)
6 Brumaire An CCXXII, 5,3009h - héliotrope
2013-W43-7T12:43:19Z
 

Discussions similaires

Statistiques des forums

Discussions
312 266
Messages
2 086 655
Membres
103 354
dernier inscrit
roukhein