Macro application couleur si modif cellule sur colonne precise

Résolu/Fermé
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016 - 31 août 2016 à 18:34
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016 - 6 sept. 2016 à 20:13
Bonjour,

Je travaille actuellement sur un tableau excel avec des macros (je suis novice mais je m'applique).
Ce classeur comprend 2 feuilles (1 pour l'équipe technique et 1 pour moi qui correspond à la partie gestion).
J'ai donc une première macro qui à partir de la feuille 1 nommée "Technique" va automatiquement venir coller dans la feuille 2 nommée "Facturation" les données qui m'intéressent pour ma facturation et ce dès qu'une ligne est saisie dans la feuille Technique.
Le feuille "Facturation" ne sera pas identique à la feuille Technique car je vais y insérer au fur et à mesure des lignes de prestations à facturer.
Mais j'ai besoin de savoir si une modif est appliquée par l'équipe Technique dans la feuille Technique parce que peut-être qu'elle se serait trompée sur le nom d'une personne, afin de savoir si cela va impacter ma feuille "Facturation".
Je me suis dit que je devais intégrer une macro événementielle dans ma feuille nommée Technique qui mettrait systématiquement en couleur la cellule modifiée pour que je puisse effectuer un contrôle.
Problématique :

- dès que j'intègre une nouvelle ligne la macro considère que c'est une modification de cellule et donc me la colorie
- sur une cellule pré-remplie, il se peut qu'une cellule soit vide car on a pas encore la donnée. Et donc on complétera par la suite. Il faut que cela soit aussi pris en compte comme la modification d'une cellule.

Donc je veux que ma macro ne s'applique que sur 5 colonnes précises et ne prennent pas en compte l'intégration de données sur une ligne vide mais ne tiennent compte que des lignes ou des données sont déjà existantes.

Voici ce que cela donne (test sur uniquement la colonne n°2):


Private Sub Worksheet_Change(ByVal target As Range)

'definition des colonnes
Set sel = Range("B3", selection.End(xlDown))

'debut d'action macro evenementiel
If Not Intersect(target, sel) Is Nothing Then

'Call ctrl

ActiveCell.Select
With selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With


End If

End Sub


VOICI LA MACRO NOMMEE "CTRL"

Sub ctrl()

If Cells(ActiveCell.Row, 16).Value > 0 Then

ActiveCell.Select
With selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With


End If
End Sub


Pour essayer de faciliter le contrôle, j'ai ajouté une colonne qui compte le nombre de cellules contenant une donnée sur un ligne ce qui donne un repère.

J'espère que vous allez comprendre et si pas je peux vous donner mon tableau test.

Bonne soirée et un grand merci.

Sabrina
A voir également:

4 réponses

ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
31 août 2016 à 19:28
Bonjour

Peux tu envoyer un bout de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu

1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".

Cdlmnt
0
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016
31 août 2016 à 21:17
A titre d'info si je travaille sur 2 feuilles c'est parce que l'équipe technique est terriblement nulle sur excel et qu'elle me casse constamment mes formules donc je cherche a ce qu'elle est le moins d'action possible dans ma partie.
0
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016
Modifié par Chris 94 le 1/09/2016 à 18:35
Bonsoir ccm81,

Merci pour ton aide. Voici le lien : supprimé par la Modération à la demande de l'auteur
Alors j'ai sup les données persos (boulot) et modifié les onglets et c'est un peu le désordre dans mes macros car plusieurs tests mais je pense que tu vas vite comprendre.

Voici dans un 1er temps ce que je souhaite :

- l'équipe technique rempli la feuille intitulée "Technique". Certaines des cellules remplies sur une ligne vont se copier/coller automatiquement dans la feuille "Facturation" (ce sont les données qui vont m'être utiles)
- à partir de ces données moi je vais générer des lignes de lignes à facturer. Donc ma feuille "facturation" sera forcément différente de ma feuille "Technique"

Imaginons qu'une fille se trompe et veuille rectifier une info dans une des cellules dans la feuille Technique sur les colonnes 2; 3; 4; 5; 8; et 15, je voudrai que la cellule modifiée se colore (dans mes macros je teste pour le moment les modifs apportées à la colonne 2).

Le problème est que je ne veux que cela se passe uniquement sur les lignes ayant au minimum 1 cellule de remplie (même si cette même ligne contient des cellules vides dans les colonnes qui m'intéressent).

Dans le cas présent si je rempli une ligne à l'origine vide cela me la colore en vert.

Voilà je pense être suffisamment claire :)

Merci.

Sabrina
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325
1 sept. 2016 à 18:36
Bonjour,

J'ai supprimé le lien du tableau, selon ta demande à la Conciergerie. Il te suffira de donner le lien du tableau expurgé des données sensibles en commentaire ci-dessous :-)
0
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016
1 sept. 2016 à 18:47
Super, merci.
J'ai intégré un nouveau tableau dans mon dernier commentaire.
:)
0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
1 sept. 2016 à 12:34
Bonjour
Pour colorier (en vert) en cas de modification colonnes B,C,D,E,H,O et dans une ligne contenant au moins 3 données (modif comprise, et comme tu as quelque chose en colonne P)

Const co1 = "B:E"
Const co2 = "H"
Const co3 = "O"
Const vert = 43

Private Sub Worksheet_Change(ByVal target As Range)
Dim li As Long, nbcelremplies As Long
If target.Count > 1 Then Exit Sub
If Not Intersect(target, Union(Columns(co1), Columns(co2), Columns(co3))) Is Nothing Then
li = target.Row
nbcelremplies = Application.WorksheetFunction.CountA(Rows(li))
If nbcelremplies > 2 Then
target.Interior.ColorIndex = vert
End If
End If

Cdlmnt
0
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016
Modifié par SabLaf64 le 1/09/2016 à 18:46
Bonjour ccm81,

Merci pour ton retour et ta macro, cependant elle ne correspond pas totalement à mes attentes.

Tout d'abord un nouveau lien avec le tableau comportant des cellules pré-remplies : https://www.cjoint.com/c/FIbqUCNsQwo

En fait, j'ai besoin d'une macro qui permettrait :
- de colorier une cellule pleine dès l'instant qu'elle est modifiée (ex dans le tableau je modifie le nom LAFORGE en LAFORGUE car je me rends compte que j'ai fait une erreur)
- de colorier une cellule vide (parce qu'à ce moment là nous n'avions pas l'info) faisant partie d'une ligne en partie remplie

Par contre cette macro ne doit pas s'appliquer si l'on rempli une ligne vide (nouvelle ligne saisie).
Cette macro ne doit q'appliquer qu'aux cellules remplies et aux cellules vides d'une ligne possédant déjà des informations.

Un collègue me dit que c 'est impossible, qu'il faudrait créer une page "COPIE" qui serait la copie de ma page Technique et dans laquelle il faudrait que j'insère une "mise en forme conditionnelle" pour repérer les cellules qui diffèrent de la page Technique.

Qu'en penses-tu? Est-ce vraiment irréalisable?

Merci de ton retour.

SabLaf
0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
1 sept. 2016 à 20:23
Essaies ceci
http://www.cjoint.com/c/FIbswBXHWLn

Cdlmnt
0
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016
4 sept. 2016 à 22:55
Bonsoir,

Alors j'ai fait plusieurs tests et apparemment cela fonctionne parfaitement comme je le souhaitais.
Je vais encore faire quelques tests demain :)
Sinon avec mon collègue on a décortiqué cette macro afin d'en comprendre le raisonnement et c'est vrai que nous n'avions pas du tout la même approche et vision du "comment faire pour atteindre tel résultat"
Merci pour tout.
Dès que j'aurais fait les derniers tests je passerai la conversation en "résolu".

Bonne soirée

:)
0
SabLaf64 Messages postés 14 Date d'inscription mercredi 10 août 2016 Statut Membre Dernière intervention 24 novembre 2016
6 sept. 2016 à 20:13
Bonsoir,

Bon pour moi tout à l'air ok.

Merci encore et bonne soirée :)
0