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 :

colorier une forme à partir de la couleur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut colorier une forme à partir de la couleur d'une cellule
    Bonjour,

    Je cherche sous excel à l'aide d'une macro à:

    1/ colorier une forme automatique (un rectangle par exemple) en reprenant la couleur d'une cellule existante,

    2/ reprendre le nombre contenu dans cette même cellule et l'inscrire automatiquement dans la même forme automatique.

    Merci d'avance pour votre aide.

    Thomas

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Voici un exemple qui crée une forme et copie ce qu'il y a dans la cellule A1 de la Feuille 1 (fond de cellule et couleur).

    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
    Public Sub CellForm()
        ' déclaration de variables
        Dim shp As Shape
        Dim wks As Worksheet
     
        ' affectation
        Set wks = ActiveWorkbook.Worksheets("Feuil1")
        Set shp = wks.Shapes.AddShape(msoShapeRectangle, 100, 100, 200, 25)
     
     
        ' copie
        With shp
            .Fill.ForeColor.RGB = wks.Range("A1").Interior.Color
            With .TextFrame.Characters
                .Text = wks.Range("A1").Text
                .Font.Color = wks.Range("A1").Font.Color
            End With
        End With
    End Sub
    Philippe

  3. #3
    Membre expérimenté Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Points : 1 482
    Points
    1 482
    Par défaut
    Bonjour

    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
    Option Explicit
    Dim Cel As Range, Cel_R As Range
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False / True
    If Intersect(Target, [C1:C10]) Is Nothing Then Exit Sub
    For Each Cel In Target
        Set Cel_R = [A1:A10].Find(Cel)
        If Cel_R Is Nothing Then
            Cel.Interior.ColorIndex = xlNone
        Else
            Cel.Interior.ColorIndex = Cel_R.Interior.ColorIndex
            Cel.Font.ColorIndex = Cel_R.Font.ColorIndex
        End If
    Next Cel
    End Sub
    Tu mets en A1:A10 des couleurs de fond et du texte ou un nombre, quand tu tape le même texte ou le même nombre en C1:C10, la même couleur apparait.

    Si celà peut t'aider
    Cordialement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    @ Vadorblanc la question est pour une forme automatique et non pour une autre plage de cellule.

    Philippe

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/04/2011, 15h03
  2. Réponses: 0
    Dernier message: 21/04/2011, 13h23
  3. [VBA] Lancer une form à partir de son nom
    Par truman dans le forum Général VBA
    Réponses: 28
    Dernier message: 18/05/2006, 14h41
  4. [Winform][C#]Comment lancer une forme à partir du menu
    Par rb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/06/2005, 17h01
  5. [VB.NET] Activer procédure d'une form à partir d'une autre
    Par ricil78 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/05/2004, 14h52

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