détail d'une tournée/répartition heure/condition

  • Initiateur de la discussion Initiateur de la discussion skun
  • Date de début Date de début

skun

XLDnaute Occasionnel
détail d'une journée

Bonjour !



j'étudie donc les différentes periodes de travail qui ont composé la journée du salarié

et je les répartie selon ce qu'elles représentent:

si ce sont des periodes "C" ou de "A" ou de "B" ou de "D"


Ces periodes C sont déterminées par deux "actions" D. Pour chaque Action D est attribué un horaire E, c'est grace à celà qu'on détermine une periode entre 2 actions.


exemple de deux action: Départ BLOCO - Arrivée TATA
qui vont déterminer deux horaires 20:05 - 21:05
qui vont déterminer une période 01:00


Voilà pour l'ennontiation de mon cas.





Ce que j'aimerai, c'est que en fonction de la formation des multiples action et donc des horaires de ma journée, les periodes se répartissent dans un tableau
en fonction de ce qu'elles représentent, je pense qu'une mise en forme conditionnelle serait vraiment préférable pour la lisibilité .
je suis près a restructurer entièrement ma base de donnée si elle ne convient pas.

Voilà, j'espere que mon souhait est réalisable.

peut etre à l'aide de mise en forme conditionnelle? de maccro? je ne sais pas.
si quelqu'un sait comment envisager une solution à mon problème je suis à l'écoute.

je vous remercie d'avance


skun
 
Dernière édition:

klin89

XLDnaute Accro
Re : détail d'une tournée/répartition heure/condition

Bonjour le forum,
Bonjour skun,

Pour te donner une idée, vois le fichier de cibleo dans le lien ci-dessous.

A l'aide de la souris, il marque différentes plages horaires (couleurs + caractères) ====> Sélection de la plage puis click sur un bouton.
1 cellule est égale à 5 minutes.
En bout de lignes, des formules aves Nb.si qui compte la durée de tes différentes périodes.

Les 2 boutons situés sur la feuille de calcul sont associés à des macros de marquage (dans le module Marquage, il y en a plusieurs, le fichier a été allégé).

https://www.excel-downloads.com/threads/vba-function-pour-calculer-amplitude-dheures-ou-nb-si.99324/

Je vois que tu as 4 périodes, crées 4 boutons associés à tes 4 macros.

Une suggestion : la plage horaire est très longue, peut-être créer différents boutons pour masquer/afficher les créneaux horaires.

Voilà c'était une idée.

Amicalement klin89
 

skun

XLDnaute Occasionnel
Re : détail d'une tournée/répartition heure/condition

bonjour,
je te remercie pour ta réponse, je vais bosser ca ce soir,
j'appréhende un peu car j'y connait rien en macro :(

à plus tard


skun

ps: j'ai juste jeté un coup d'oeil au lien que tu m'as montré,
à première vu ca pourrait le faire, mais il y a déjà un soucil, c'est que ma plage horaire est de 24h, et que il faut qu'elle soit précise à la minute prés. Le fait d'avoir un truc déroulant pour la plage horaire me gene un peu car je vois pas trop comment l'amenager a mon cas, enfin, je vais y travailler =)
 
Dernière édition:

klin89

XLDnaute Accro
Re : détail d'une tournée/répartition heure/condition

Re Bonjour,

Je te rassure, moi non plus je n'y connais pas grand chose.

Pour t'aider, le bouton "Congés payés" (il s'agit d'un CommanButton créé avec la Boîte à outils Contrôles) de la feuille de calcul "Modele" est associé au code ci-dessous.
Tu cliques droit sur l'onglet "Modele" et tu fais visualiser le code. Tu vas alors l'apercevoir dans la fenêtre de code de ta feuille de calcul.

Code:
Private Sub CP_Click()
Call [COLOR="red"]Marquage_CP[/COLOR]
End Sub

Qui lui même appelle la macro ci-dessous qui est placée dans un module standard (module nommé "Marquage")

Code:
Public Sub [COLOR="Red"]Marquage_CP[/COLOR]()
'Congés Payés

Dim c As Range
Dim oIntersect As Range
Application.ScreenUpdating = False
  Set oIntersect = Intersect(Selection, Range("C3:IJ33"))
  If Not oIntersect Is Nothing Then
    If oIntersect.Count = Selection.Count Then
      For Each c In Selection
        c = "CP"
        Selection.Interior.ColorIndex = 40
        Selection.Font.ColorIndex = 40
      Next c
      Exit Sub
    End If
  End If
  MsgBox "Mauvaise Sélection !"
  Range("A1").Select
  Application.ScreenUpdating = True
End Sub

Il s'agit des 2 codes pour le bouton "Congés payés.

A toi de les reproduire avec 4 boutons.

Tu me dis que cela doit se faire à la minute près :( Effectivement Excel 2003 n'a que 256 colonnes ce qui ne peut représenter 1280 minutes (256*5) soit 21 Heures et 20 minutes de plage horaire, cela ne va pas le faire sauf si tu possèdes Excel 2007.

Sinon, attendons les conseils avisés d'autres intervenants notamment les spécialistes du VBA.

Amicalement Klin89
 
Dernière édition:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 283
Messages
2 118 012
Membres
113 408
dernier inscrit
lausablk