Macro Excel "MFC d'une forme"
Fermé
nicogc
Messages postés
3
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
18 mars 2010
-
17 mars 2010 à 14:54
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 - 18 mars 2010 à 18:02
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 - 18 mars 2010 à 18:02
A voir également:
- Macro Excel "MFC d'une forme"
- Mise en forme conditionnelle excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
7 réponses
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
17 mars 2010 à 17:08
17 mars 2010 à 17:08
Re,
J'ai nommé la A2 forme ovale et Inséré le texte cellule
Sub Macro1 ()
Si [A1] = "Refuser" Alors
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
Autre
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoFalse
End If
Si [A1] = "VALIDE" Then
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
End If
ActiveSheet.Shapes ( "Oval"). Sélectionner
Selection.Characters.Text = [A2]
End Sub
<gras> A1 Pour un Déclenchement automatique des qu'en la valeur cller changer ce code Dans Les Propriétés feuille (clic droit sur l'onglet de feuille concernée / visualiser le code) </ gras>
Private Sub Worksheet_Change (ByVal Target As Range)
Si Target.Address = "$ A $ 1" Then
Si [A1] = "Refuser" Alors
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
Autre
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoFalse
End If
Si [A1] = "VALIDE" Then
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
End If
ActiveSheet.Shapes ( "Oval"). Sélectionner
Selection.Characters.Text = [A2]
End If
End Sub
<gras> pour l'actualisation permanente des QU'UNE Une valeur feuille changement </ gras>
Private Sub Worksheet_Change (ByVal Target As Range)
Si [A1] = "Refuser" Alors
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
Autre
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoFalse
End If
Si [A1] = "VALIDE" Then
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
End If
ActiveSheet.Shapes ( "Oval"). Sélectionner
Selection.Characters.Text = [A2]
End Sub
J'ai nommé la A2 forme ovale et Inséré le texte cellule
Sub Macro1 ()
Si [A1] = "Refuser" Alors
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
Autre
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoFalse
End If
Si [A1] = "VALIDE" Then
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
End If
ActiveSheet.Shapes ( "Oval"). Sélectionner
Selection.Characters.Text = [A2]
End Sub
<gras> A1 Pour un Déclenchement automatique des qu'en la valeur cller changer ce code Dans Les Propriétés feuille (clic droit sur l'onglet de feuille concernée / visualiser le code) </ gras>
Private Sub Worksheet_Change (ByVal Target As Range)
Si Target.Address = "$ A $ 1" Then
Si [A1] = "Refuser" Alors
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
Autre
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoFalse
End If
Si [A1] = "VALIDE" Then
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
End If
ActiveSheet.Shapes ( "Oval"). Sélectionner
Selection.Characters.Text = [A2]
End If
End Sub
<gras> pour l'actualisation permanente des QU'UNE Une valeur feuille changement </ gras>
Private Sub Worksheet_Change (ByVal Target As Range)
Si [A1] = "Refuser" Alors
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
Autre
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoFalse
End If
Si [A1] = "VALIDE" Then
ActiveSheet.Shapes ( "Oval"). Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes ( "Oval"). Fill.Visible = msoTrue
End If
ActiveSheet.Shapes ( "Oval"). Sélectionner
Selection.Characters.Text = [A2]
End Sub
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
18 mars 2010 à 18:02
18 mars 2010 à 18:02
Re,
si tes attentes sont satisfaites, confirme le moi que je mette le statut de cette discussion en résolu
merci
si tes attentes sont satisfaites, confirme le moi que je mette le statut de cette discussion en résolu
merci
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
17 mars 2010 à 15:26
17 mars 2010 à 15:26
Bonjour,
Bien entendu il faut sélectionner le bon indice de Shapes
A+
ActiveSheet.Shapes(1).Select With Selection .ShapeRange.Fill.ForeColor.SchemeColor = 3 ' vert .ShapeRange.Line.ForeColor.SchemeColor = 10 'Rouge End With
Bien entendu il faut sélectionner le bon indice de Shapes
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
17 mars 2010 à 15:33
17 mars 2010 à 15:33
Salut,
Lorsque tu crées un forme, dans la barre d'adresse tu trouveras son nom exemple lorsque tu pointes sur une cellule ex. B2 dans la barre d'adresse tu as B2, c'est la même chose avec les formes. Dans le code ci-dessous, c'est l'oval1, mais tu pourrais également nommer cette forme.
J'ai rajouté un Else qui supprime la couleur si un nom est différent en A1.
Sub Macro2()
If [A1] = "REFUSE" Then
ActiveSheet.Shapes("Oval 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Else
ActiveSheet.Shapes("Oval 1").Select
Selection.ShapeRange.Fill.Visible = msoFalse
End If
If [A1] = "VALIDE" Then
ActiveSheet.Shapes("Oval 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
End If
End Sub
ou comme cela
Sub Macro2()
If [A1] = "REFUSE" Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes("Oval 1").Fill.Visible = msoTrue
Else
ActiveSheet.Shapes("Oval 1").Fill.Visible = msoFalse
End If
If [A1] = "VALIDE" Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes("Oval 1").Fill.Visible = msoTrue
End If
End Sub
Lorsque tu crées un forme, dans la barre d'adresse tu trouveras son nom exemple lorsque tu pointes sur une cellule ex. B2 dans la barre d'adresse tu as B2, c'est la même chose avec les formes. Dans le code ci-dessous, c'est l'oval1, mais tu pourrais également nommer cette forme.
J'ai rajouté un Else qui supprime la couleur si un nom est différent en A1.
Sub Macro2()
If [A1] = "REFUSE" Then
ActiveSheet.Shapes("Oval 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Else
ActiveSheet.Shapes("Oval 1").Select
Selection.ShapeRange.Fill.Visible = msoFalse
End If
If [A1] = "VALIDE" Then
ActiveSheet.Shapes("Oval 1").Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
End If
End Sub
ou comme cela
Sub Macro2()
If [A1] = "REFUSE" Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.SchemeColor = 10
ActiveSheet.Shapes("Oval 1").Fill.Visible = msoTrue
Else
ActiveSheet.Shapes("Oval 1").Fill.Visible = msoFalse
End If
If [A1] = "VALIDE" Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.SchemeColor = 11
ActiveSheet.Shapes("Oval 1").Fill.Visible = msoTrue
End If
End Sub
nicogc
Messages postés
3
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
18 mars 2010
17 mars 2010 à 16:02
17 mars 2010 à 16:02
SUPER MIKE !!! Ca fonctionne parfaitement !!!
Vraiment merci pour la qualité et la réactivité de ta réponse.
Si j'abuse ps trop, je souhaiterai rajouterai un petit bonus a ma demande, que la même macro fasse une chose en plus: écrire le texte d'une cellule dans la forme.
C a d, si l'on reprend l'exemple précédent, la couleur de l'ellipse est déterminé par la valeur de la cellule [A1] ET le texte de la cellule [A2] est écrit dans l'ellipse.
Je pense que ca ne devrais pas te poser trop de problème
Nicolas
Vraiment merci pour la qualité et la réactivité de ta réponse.
Si j'abuse ps trop, je souhaiterai rajouterai un petit bonus a ma demande, que la même macro fasse une chose en plus: écrire le texte d'une cellule dans la forme.
C a d, si l'on reprend l'exemple précédent, la couleur de l'ellipse est déterminé par la valeur de la cellule [A1] ET le texte de la cellule [A2] est écrit dans l'ellipse.
Je pense que ca ne devrais pas te poser trop de problème
Nicolas
nicogc
Messages postés
3
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
18 mars 2010
18 mars 2010 à 15:57
18 mars 2010 à 15:57
Merci beaucoup Mike
Super réponse
A+
Super réponse
A+