Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 17h01   #1
Invité de passage
 
Inscription : août 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 30
Points : 2
Points : 2
Par défaut planning de production

Bonjour à tous,
Je cherche à résoudre le problème suivant et je ne sais pas comment m'y prendre.
Sur une même feuille (voir fichier ci-joint) j'ai :
- des Ordre de Fabrication avec une date et heure de départ et une date et heure de fin pour chaque ligne de fabrication
- un planning avec en abscisse les dates et heures (la maille est l'heure) et en ordonnée les lignes de fabrication
Comment coloriser, en automatique, le planning à partir des ordres de fabrication en fonction de critères de couleurs définis dans la feuille.

Voir mon fichier et voici le résumé de ma problématique:
Si pour une cellule du planning:
- la valeur de la ligne 10 correspondante est comprise entre les valeurs de la colonne D et E
- et que le libellé de la colonne K correspondante est égal au libellé de la colonne G
Alors "colorisation" de la cellule en fonction des critères définis en haut à gauche

Merci d'avance pour votre aide
Fichiers attachés
Type de fichier : xlsx planning.xlsx (20,1 Ko, 9 affichages)
philppe27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 22h51   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Voila une solution partiel avec des mise en forme conditionnelle.

Je dis partiel car il manque la gestion des chevauchement, ça risque de pas être simple à faire d’ailleurs.

++
Qwaz
Fichiers attachés
Type de fichier : zip planning.zip (18,3 Ko, 8 affichages)
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 19h11   #3
Invité de passage
 
Inscription : août 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 30
Points : 2
Points : 2
Bonsoir Qwaz,

Merci pour ces formules de mise en forme conditionnelle cela correspond tout à fait à mon besoin.
Concernant le chevauchement si c'est trop compliqué, j'ai la solution de signaler les chevauchements d'Of dans les colonne Début et Fin d'Of (D et E). J'ai trouvé une formule de mise en forme conditionnelle qui permet de mettre en rouge les chevauchements (cette formule est peut-être à simplifier).
J'ai rajouté une colonne dans le tableau pour bien prendre en compte la date maxi de début d'of (+ mise en forme conditionnelle si la date de début d'of dépasse l'objectif).
Pour que ce soit parfait il faudrait que le n° d'Of et le n° de référence apparaisse sur le planning. L'idéal serait de mettre ces informations dans la première cellule représentant l'Of sur le planning.
Cela permettrait de visualiser rapidement l'Of sur le planning et comment le repositionner.
Ci-joint le fichier avec modif.

Merci d'avance
Fichiers attachés
Type de fichier : zip planning.zip (22,4 Ko, 2 affichages)
philppe27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 22h25   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Je regarderai demain, j'avais eu une idée hier soir en me couchant, je la testerais.

Pour ton histoire de coloration dans le tableau de gauche, il y a plus simple je pense

Deux MFC, appliquées sur 2 plages du tableau

sur la plage

$E$10:$E$24
Code :
=ET($D11<>"";$G11=$G10;$D11<$E10)
$D$10:$D$24
++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 23h21   #5
Invité de passage
 
Inscription : août 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 30
Points : 2
Points : 2
Ok pour les formules de MFC mais si les of ne sont pas classés par lignes de fab et dates de début d'of je pense que cela ne marche plus. A priori les of ne seront pas toujours dans cet ordre.
A moins que l'on trouve une solution pour que le tableau se trie en permanence. Mais je pense que ce ne sera pas très fonctionnel, notamment, lorsque l'on sera en train de saisir les of.... Il faudrait attendre que toute la ligne de la colonne A à F soit remplie avant de faire un tri auto...
philppe27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 08h57   #6
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Voila une solution
Ajoute ce code dans la feuille1
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub Worksheet_Change(ByVal Target As Range)
Dim TheCell As Range
 
'On verifie que le changement a lieu dans le tabeau d'action (TabActions)
If Not Intersect(Target, Feuil1.ListObjects("TabActions").Range) Is Nothing Then
    'On regarde si la ligne du tableau impacté par la saisie est intégralement remplie
    For Each TheCell In Feuil1.Range("TabActions").Resize(1).Offset(Target.Row - 10)
        'Si une cellule n'a pas de contenu, on quitte
        If TheCell = "" Then Exit Sub
    Next
    'Si le code arrive ici, toutes les cellules ont un contenu
    'On desactive l'update de l'ecran
    Application.ScreenUpdating = False
    'On tri donc le tableau par n°Ligne et par date de début
    With Feuil1.ListObjects("TabActions").Sort
        With .SortFields
            .Clear
            .Add Key:=Range("TabActions[Poste]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .Add Key:=Range("TabActions[d et h début]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        End With
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
    Application.ScreenUpdating = True
End If
End Sub
Une autre solution serait de faire un UserForm par lequel la personne passerait pour ajouter des lignes dans le tableau. Au moment de la confirmation du UserForm, tu contrôles que les données saisies correspondent à une réalité et tu les ajoutes dans le tableau avant d'effectuer un tri comme dans le code précédent.

++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 14h39   #7
Invité de passage
 
Inscription : août 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 30
Points : 2
Points : 2
Bonjour Qwaz,

Pour le tri je trouve cela très bien avec ton code

Reste le problème de l'affichage des OF sur le planning pour faciliter les modif et aussi pour la diffusion du planning après impression
J'ai trouvé une formule qui permet de mettre, dans la première cellule d'affichage de l'OF le n° d'OF, le code produit et la quantité, mais forcément l'affichage est limité à la cellule car celle qui est à côté contient une formule...!
Par contre lorque l'on fait un collage spécial valeur et que l'on efface les cellules qui ne contiennent pas de valeur le libellé complet est visible.
Ne pourrait on pas pour tout mouvement dans le tableau : (?)
copier la formule dans toutes les cellules du planning
copier collage spécial valeur
effacer toutes les cellules qui ne contiennent rien

Qu'en penses tu ? Peux tu m'aider pour le code
Ca m'intéresse toujours si tu as un idée sur le chevauchement dans le planning mais si c'est trop compliqué ce n'est pas grave...

Autre problème :
Mise en forme conditionnellle des couleurs ça fonctionne quand le début d'OF est entre 5 et 8 heures mais à partir de 9 heures l'affichage de la couleurest décalée d'1 heure ??? Je ne comprends pas pourquoi. J'ai modifié la formule des heures ligne 9 mais je ne vois pas où est l'erreur?
Fichiers attachés
Type de fichier : zip planning.zip (40,2 Ko, 10 affichages)
philppe27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web