IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Pb coloration d'une forme en VBA à partir de la couleur d'une cellule. [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Points : 99
    Points
    99
    Par défaut Pb coloration d'une forme en VBA à partir de la couleur d'une cellule.
    Bonjour,

    Je souhaite que la couleur d'une forme soit identique à la couleur d'une cellule active.

    Voici le code pour récupérer la couleur de la cellule Active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Function RecupCouleurCase()
    Dim CoulRVB As Long
    Dim Bleu As Integer
    Dim Vert As Integer
    Dim Rouge As Integer
     
        CoulRVB = ActiveCell.Interior.color
     
        Rouge = Int(CoulRVB Mod 256)
        Vert = Int((CoulRVB Mod 65536) / 256)
        Bleu = Int(CoulRVB / 65536)
     
        RecupCouleurCase = "RGB(" & Rouge & ", " & Vert & ", " & Bleu & ")"
    End Function
    Voici le code pour colorer la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub CopieValeurCase()
    Dim a As String
    Dim ColorCase As String
        a = RecupCouleurCase
     
        CaseValeur = ActiveCell.Value
     
        ActiveSheet.Shapes.Range(Array("TextBox 6")).Select
        Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = CaseValeur
        Selection.ShapeRange.Fill.ForeColor.RGB = a
        'Selection.ShapeRange.Fill.ForeColor.RGB = RGB(141, 180, 226)
     
        Range("A1").Select
    End Sub
    La valeur récupérée par la variable me semble à première vue correcte, mais j'obtiens une erreur sur la ligne lors de l'exécution du code.
    Lorsque j'essaye avec la ligne suivante (actuellement en commentaire) cela fonctionne.

    Pouvez-vous m'aider ? Je suis un peu bloqué, Peut-être une poussière dans l'oeil.

    Merci

  2. #2
    Membre régulier Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Points : 99
    Points
    99
    Par défaut Problème résolu Solution Trouvé
    Il semblerait donc que la solution de concaténer ne fonctionne pas pour les couleurs.

    Voici donc tout bêtement la solution trouvée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Sub CopieValeurCase(Ligne As Integer, Colonne As Integer)
     
        Dim CoulRVB As Long
        Dim Bleu As Integer
        Dim Vert As Integer
        Dim Rouge As Integer
     
        CoulRVB = ActiveCell.Interior.color
     
        Rouge = Int(CoulRVB Mod 256)
        Vert = Int((CoulRVB Mod 65536) / 256)
        Bleu = Int(CoulRVB / 65536)
     
        CaseValeur = ActiveCell.Value
     
        ActiveSheet.Shapes.Range(Array("TextBox 6")).Select
        Selection.ShapeRange.TextFrame2.TextRange.Characters.Text = CaseValeur
     
        Selection.ShapeRange.Fill.ForeColor.RGB = RGB(Rouge, Vert, Bleu)
     
        Cells(Ligne, Colonne).Select
    End Sub
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ouvrir une application en vba à partir d'excel
    Par Boubas1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/11/2008, 02h19
  2. Réponses: 6
    Dernier message: 04/08/2008, 17h36
  3. Menu a partir d'un bouton dans une form
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 18/06/2008, 08h59
  4. recuperer le nom d'une forme en VBA ?
    Par Sami-33 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/07/2007, 14h39
  5. [VB.NET 2005]Afficher une form depuis VBA
    Par Bz dans le forum C++/CLI
    Réponses: 3
    Dernier message: 11/04/2007, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo