OVH Cloud OVH Cloud

Reporter une valeur en fonction couleur texte

2 réponses
Avatar
Mikus
Bonjour,

Je dispose d'un fichier excel comprenant 2 feuilles (un tableau sur chaque feuille). J'aimerais que lorsque je met le texte d'une cellule en vert (sur le tableau 2), la valeur de celle-ci se reporte dans une colonne de mon tableau1 sur ma feuille 1.

Dans mon tableau 2, il y aura que une seule cellule par ligne disposant d'une police verte.

Merci pour vos réponse prochaine.

Cordialement,

2 réponses

Avatar
Michd
Bonjour,
A ) Ta question est floue. Tu veux copier la cellule en VERT où dans la
feuil1? À la même adresse qu'elle a dans le tableau de la feuil2? Je ne peux
pas deviner. Je t'ai donné 2 exemples.
1 - Copie la ligne complète de la cellule en vert vers la première ligne
disponible dans la feuil1
2 - Copie de la cellule en VERT vers la même cellule (adresse) dans la
feuil1
Pour ce faire, place un bouton de commande dans la feuil2 et à chaque fois
que tu veux mettre en vert une cellule, tu cliques sur le bouton. La macro
va mettre en vert le texte de la cellule et copier celle-ci vers la feuil1.
Si tu préfères, tu peux ajouter à la barre d'accès rapide dans le haut de
l'application Excel, un bouton et tu lui attribues cette macro.
Selon l'option que tu retiendras, tu supprimeras les lignes de code en trop.
Prends le temps de lire la procédure avant de procéder!
'---------------------------------------------------------------
Sub Couleur_Copy()
Dim DerLig As Long
'Feuil2 représente la propriété "Name" de l'objet
'Worksheet visible dans la fenêtre VBA.
'chaque feuille est identifiée par : Feuil1(Feuil1)
'Feuil1 = Nom de la propriété de cette Worksheet
'(Feuil1) = Nom de l'onglet de la feuille.
If ActiveSheet.CodeName = "Feuil2" Then
With Feuil1
'pour copier la ligne entière de la cellule en VERT
'à la ligne suivante du tableau de la feuil1
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
ActiveCell.EntireRow.Copy .Range("A" & DerLig)
'Pour copier le contenu de la cellule en VERT vers la
'même adresse de la cellule de la feuil1
ActiveCell.Copy .Range(ActiveCell.Address)
End With
'mets le texte de la cellule en vert
ActiveCell.Characters.Font.Color = vbGreen
End If
End Sub
'---------------------------------------------------------------
MichD
"Mikus" a écrit dans le message de groupe de discussion :
Bonjour,
Je dispose d'un fichier excel comprenant 2 feuilles (un tableau sur chaque
feuille). J'aimerais que lorsque je met le texte d'une cellule en vert (sur
le
tableau 2), la valeur de celle-ci se reporte dans une colonne de mon
tableau1
sur ma feuille 1.
Dans mon tableau 2, il y aura que une seule cellule par ligne disposant
d'une
police verte.
Merci pour vos réponse prochaine.
Cordialement,
Avatar
mikus
Le mardi 13 Février 2018 à 14:21 par Michd :
Bonjour,
A ) Ta question est floue. Tu veux copier la cellule en VERT où dans la
feuil1? À la même adresse qu'elle a dans le tableau de la feuil2?
Je ne peux
pas deviner. Je t'ai donné 2 exemples.
1 - Copie la ligne complète de la cellule en vert vers la
première ligne
disponible dans la feuil1
2 - Copie de la cellule en VERT vers la même cellule (adresse) dans la
feuil1
Pour ce faire, place un bouton de commande dans la feuil2 et à chaque
fois
que tu veux mettre en vert une cellule, tu cliques sur le bouton. La macro
va mettre en vert le texte de la cellule et copier celle-ci vers la feuil1.
Si tu préfères, tu peux ajouter à la barre d'accès
rapide dans le haut de
l'application Excel, un bouton et tu lui attribues cette macro.
Selon l'option que tu retiendras, tu supprimeras les lignes de code en trop.
Prends le temps de lire la procédure avant de procéder!
'---------------------------------------------------------------
Sub Couleur_Copy()
Dim DerLig As Long
'Feuil2 représente la propriété "Name" de
l'objet
'Worksheet visible dans la fenêtre VBA.
'chaque feuille est identifiée par : Feuil1(Feuil1)
'Feuil1 = Nom de la propriété de cette Worksheet
'(Feuil1) = Nom de l'onglet de la feuille.
If ActiveSheet.CodeName = "Feuil2" Then
With Feuil1
'pour copier la ligne entière de la cellule en VERT
'à la ligne suivante du tableau de la feuil1
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
ActiveCell.EntireRow.Copy .Range("A" & DerLig)
'Pour copier le contenu de la cellule en VERT vers la
'même adresse de la cellule de la feuil1
ActiveCell.Copy .Range(ActiveCell.Address)
End With
'mets le texte de la cellule en vert
ActiveCell.Characters.Font.Color = vbGreen
End If
End Sub
'---------------------------------------------------------------
MichD
"Mikus" a écrit dans le message de groupe de discussion :
Bonjour,
Je dispose d'un fichier excel comprenant 2 feuilles (un tableau sur chaque
feuille). J'aimerais que lorsque je met le texte d'une cellule en vert (sur
le
tableau 2), la valeur de celle-ci se reporte dans une colonne de mon
tableau1
sur ma feuille 1.
Dans mon tableau 2, il y aura que une seule cellule par ligne disposant
d'une
police verte.
Merci pour vos réponse prochaine.
Cordialement,
Merci pour ta réponse Michd,
Problème résolue ! :)