Recherche d'une couleur pour remonter une information

Résolu/Fermé
caziag Messages postés 5 Date d'inscription mardi 14 janvier 2014 Statut Membre Dernière intervention 27 janvier 2014 - Modifié par caziag le 27/01/2014 à 14:02
caziag Messages postés 5 Date d'inscription mardi 14 janvier 2014 Statut Membre Dernière intervention 27 janvier 2014 - 27 janv. 2014 à 17:06
Bonjour,

Je n'arrive pas à construire mon programme afin que je puisse récupérer l'information d'une case (une date) si une autre case est en jaune.
Je m'explique: Mon fichier est un planning de production. Sur la gauche, j'ai en colonne toutes mes pièces à produire. Sur la droite, j'ai en ligne les différentes étapes à suivre pour réaliser mon produit. En haut se trouve une echelle du temps avec les dates jour par jour.

Ce que je cherche à faire: En mettant une étape de production en jaune, je voudrais pouvoir récupérer la date associé à cette étape sur une case de la ligne (entre le nom du produit et le découpage des opérations).

J'ai récupérer un programme mais je n'arrive pas à l'adapter et/ou le simplifier:

A savoir: Mon fichier s'appelle 'MPS'
Les étapes que je veux mettre en jaune s'appelle "EM2" et "BHF"



Dim lCol As Long
Dim nbrFAT As Long
Dim c As Range
Dim sCmdEnCours As String
Dim sPos As String
Dim sPosAvant As String
Dim vCouleur

' Recherche des Postes EM2 dont la Couleur de Fond de la Cellule est Jaune
With Sheets("MPS").Range("S4:IV65536")
Set c = .Find("EM2", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
sCmdEnCours = c.Address
Do
.Range(c.Address).Select
sPos = ActiveCell.Row
If sPos <> sPosAvant Then
vCouleur = ActiveCell.Interior.ColorIndex
If vCouleur = giJaune Then
lCol = ActiveCell.Column
If IsEmpty(.Range("N" & sPos)) Then
.Range("N" & sPos) = Sheets("MPS").Cells(10, lCol)
.Range("N" & sPos).Interior.Color = glJaune
nbrFAT = nbrFAT + 1
If Val(gsVersion) = 12 Then
.Range("N" & sPos).Interior.TintAndShade = 0
.Range("N" & sPos).Interior.PatternTintAndShade = 0
End If
End If
End If
sPosAvant = sPos
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> sCmdEnCours
End If
End With

' Recherche des Postes BHF dont la Couleur de Fond de la Cellule est Jaune ou Violette
sPosAvant = ""
With Sheets("MPS").Range("S4:IV65536")
Set c = Nothing
Set c = .Find("BHF", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
sCmdEnCours = c.Address
Do
.Range(c.Address).Select
sPos = ActiveCell.Row
If sPos <> sPosAvant Then
vCouleur = ActiveCell.Interior.ColorIndex
If vCouleur = giJaune Then
lCol = ActiveCell.Column
.Range("N" & sPos) = Sheets("MPS").Cells(10, lCol)
.Range("N" & sPos).Interior.Color = glJaune
nbrFAT = nbrFAT + 1
If Val(gsVersion) = 12 Then
.Range("N" & sPos).Interior.TintAndShade = 0
.Range("N" & sPos).Interior.PatternTintAndShade = 0
End If
End If
sPosAvant = sPos
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> sCmdEnCours
End If
End With
Sheets("MPS").Range("P4").Select
Application.ScreenUpdating = True


Par avance merci pour votre aide
Caziag
A voir également:

4 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 27/01/2014 à 15:13
Bonjour,

En mettant une étape de production en jaune Par quel moyen, code vba ou manuellement

Une maquette serait bien venue, clic sur le lien suivant:https://www.cjoint.com/

n'oubliez pas de copier/coller le lien cree dans votre prochain message

Ce ou ces dates, vous voulez les mettre ou ????
0
caziag Messages postés 5 Date d'inscription mardi 14 janvier 2014 Statut Membre Dernière intervention 27 janvier 2014
27 janv. 2014 à 16:02
Bonjour,

Voici le lien avec un modèle de fichier simplifié: https://www.cjoint.com/?3ABpZL77rB2

Le jaune est mis dans la case manuellement. Je souhaite faire tourner, via un bouton, la macro une fois les cases en jaunes remplies afin de récupérer les dates

Dans ce fichier, je souhaite récupérer les dates dans la colonne 'Goulot'.


Pour info, Seul les cases remplies 4 ou 5 peuvent être mise en jaune. Dans le code précédent, il me semble qu'il recherchait les case renseignée '4' puis si elles étaient en jaune. Idem pour '5'.
L'idéal serait de garder ce système.


Par avance merci pour votre aide
Caziag
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 janv. 2014 à 16:18
Re,

j'ai recupere le fichier et

Question:
Les étapes que je veux mettre en jaune s'appelle "EM2" et "BHF" plus d'actualite ?????? ou 4=EM2 et 5=BHF

les autres cases seront sans couleur ou ...... ??????
0
caziag Messages postés 5 Date d'inscription mardi 14 janvier 2014 Statut Membre Dernière intervention 27 janvier 2014
27 janv. 2014 à 17:06
Re,

Suite à des recherches et des tests en parallèle, j'ai trouvé une solution qui semble fonctionner.

Pour répondre à ta question, le fichier est un modèle simplifié afin d'avoir la base du code et l'adapter par la suite à mon fichier de travail. Du coup il y a effectivement des incohérences sur les noms.

Dans la mesure o j'ai trouvé ma solution, je vais clore le sujet.

Merci pour le temps que tu as passé sur ma demande.

Caziag
0