Extraire heures de marche à partir d'un tableau de programme journalier

Bonjour à tous

Beh Voilà j'ai un tableau contenant le programme de marche de quelques machine

comme colonnes les noms de machines

comme lignes les heures en commançant de 09h jusqu'à 08h du jour J+1

mon but c'est faire un rapport ou un récap de la marche de ces machine

recap

j'ai réussi à réaliser le récap des machines en marche continue et des machine en arrêt ainsi que des machines qui fonctionnent sur une seule période.

par contre pour les machines qui fonctionnent sur deux periodes pendant les 24h (de 09h à 08h du j+1) là je galère

en faite la formule que j'ai faite recherche, entre autres, la première et la dernière cellule non nulle de l'ne plage de cellule d'une colonne.

je vous présente les deux cas possibles qui me font galèrer:

* le premier cas de la machine RD qui fonctionne de 10h à 20h puis de 02h à 06h je cherche à avoir le résultat suivant 10h/20h et 02h/06h mais la formule me retourne 10h-06h, 10h-06h

* le deuxième cas de la machine BM qui fonctionne de 09h à 20h puis de 02h à 08h je cherche à avoir le résultat suivant 09h/20h et 02h/08h mais la formule me retourne Marche continue

Vraiment je ne trouve plus que faire

vous trouverez ci-joint le fichier sur lequel je travaille pour plus d'info

Merci à l'avance pour toute assistance

11classeur.xlsx (18.59 Ko)

Hello,

Une proposition vba.

Clique sur le bouton bleu et dis moi si c'est ce que tu recherches.

@+

@ BAROUTE78 Merci pour votre réponse

C'est exactement ce que je recherche mais je souhaiterai que ça soit automatique sans cliquer sur un bouton, le faite de modifier le tableau du programme, le récap change automatiquement.

encore une fois merci pour votre proposition

Hello,

Pour une raison que j’ignore, quand j’associe ma macro a un événement « Worsheet_Change » mon classeur plante.

Je n’ai pas le temps d’investiguer la tout de suite donc il faudra se contenter du bouton pour l’instant 😂

@+

je vous remercie pour votre temps et la solution que vous avez proposé

d'ailleurs c'est le but du forum, l'entre-aide quand c'est possible

je suis reconnaissant

Bonsoir,

Je vous remercie pour le retour 😬

C’est exactement pour ça que je suis sur le forum, j’apprends beaucoup des autres Exceliens et si je peux aider à mon tour je le fais avec grand plaisir 😊

@+

bonjour à tous, Baroute78,

Pour une raison que j’ignore, quand j’associe ma macro a un événement « Worsheet_Change » mon classeur plante.

c'est très probablement lié au contenu de ta macro qui modifie la feuille et déclenche à chaque fois un nouvel appel de la macro worksheet_change. Mettre un application.enableevents=false en début de macro et application.enableevents=true en fin de macro.

hello H2so4,

Ah mais bien sûr je n’y avais pas pensé hier mais si sur un event change, je remets des nouvelles infos ça tournera en boucle jusqu’à être ko.

Je vais regarder et mettre à jour

Merci pour le tips :)
@+

Hello,

Voici la version mise à jour.

Avec un petit correctif en plus car il y avait un cas non traité.

@+

Bonjour à tous et bon début de semaine

Baroute78,

Merci beaucoup pour l'aide inestimable de votre part.

la mise à jour que vous avez faite est Top alors la vraiment merci

mais vu que je suis nul en VBA et en macro je voudrai vous demander une autre chose

le tableau que vous avez fais je l'intégrer à un autre classeur tqui contient tout un rapport et des graphique de marche pour que je puisse mettre à jour le récap en le liant aux commentaires 1 et 2, le récap est une zone de texte dans une feuille de graphique

recap

et aussi pour mettre à jour les heures de marches en les liant au meme tableau sur une autre feuille (parametres en utilisant cette formule

=SI(Parametres!C17=0;"";Parametres!C17)

c'est le cas de la première cellule c5 et de même pour toutes les cellules du tableau

le problème c'est qu'en mettant à jour le tableau de la feuille paramètres le tableau de la feuilles machines-heures (nouvelle version) se met à jour mais les commentaires non, alors pour la première proposiotion, celle avec le bouton, ça marche nickel (à l'exception que quand je clique sur le bouton çà s'ouvre dans comme étant un classeur à part).

y a t il un truc que je doit faire ou configurer ??

merci à l'avance et bonne journée

Hello,

J'avoue que je n'ai pas bien compris.

Premier besoin : c'est mettre les commentaires 1 et 2 dans un tableau de bord ? Du coup il faut rechercher les deux commentaires en fonction d'un filtre dans une cellule C5 ?

Deuxième besoin : j'ai pas bien saisi. il faudrait un fichier exemple que je reproduise le souci de mon côté.

@+

Rebonjour Baroute78

Merci pour votre retour

alors ci-joint vous trouvrez le fichier xlsm dans lequel il y a les deux propositions que vous avez fait et leurs deux tableaux des heures de marches qui sont liés au tableau de la feuille parametres.

il ya aussi une feuille graphique dans laquelle il y a un graphique et des des zones de textes dans lesquels figure le récap des heures de marche (en les liants à un tableau récap dans la feuille paramètres)

un petit autre détail j'ai trouvé que lorsqu'une machine est marche discontinue (ici le cas GO) qui tourne de 15h à 03h puis rédemarre à 08h c'est commenté comme étant en marche continue je crois que c'est à cause du démarrage à la dernière heure de la journée.

Sincèrement je suis nul VBA peut être que c'est le moment de commecer à apprendre.

merci pour votre aide

Hello,

Pour la prochaine fois, envoie directement le fichier représentatif, ça permettra de gagner du temps.

J'ai gardé uniquement ton onglet graphique et parametre et j'ai adapté la macro à ton onglet parametre. Pas besoin de dupliquer les onglets pour rien.

@+

merci Beaucoup Baroute78 pour le temps que vous avez consacré pour m'aider et me répondre

le résultat répond exactement à mon besoin

je suis trop reconnaissant

1000 merci encore une fois

Hello de nouveau Baroute78,
en essayant toutes les possibilités, j'ai apérçu deux petites choses

* la première c'est quand une machine tourne par exemple de 02h à 08h (cas de RD ici) ou de19h à 08h (cas de GO) j'ai comme commentaire marche continue alors que je ne devrait l'avoir qu'en cas de marche continue pendant 24heures (de 09h à 08h) normalement je devrait avoir dans ces dux cas marche discontinue

* la deuxième: (vu que je copie le tableau des heures de marches et je le colle en tant que valeurs dans le tableau de la feuille Pramètres à partir du fichier ci-joint pour exemple) y a t il une possibilité d'ignorer les zéros car comme vous le verrez dans le cas de la machine TYN deux zéros à 7h et à 8h sont escomptés dans le commentaire de marche.

(j'espère ne pas trops demander)

Hello,

Le correctif

J'ai fait un truc qui supprime les 0 enfin l'équivalent d'un rechercher remplacer

@+

Finalement çà marche

1000 merci Baroute78

je vais appliquer ce vba dans le fichier sur lequel je travaille j'espère ne pas galérer puis c'est la même structure

je crois qu'il suffit de copier le module et le code de feuil4 (Parametres) vers la feuil4 (Parametres) de mon fichier, c'est ça non?

j'essaye et je vous tiens au courant

merci beaucoup

hello again

en essayant d'intégrer le module dans mon fichier de travail (en glissant le module dans l'explorateur vba vers le workbook en question en copiant le code de la feuil4 (parametres) du fichier "rapport-journalier-previsionnel-20232222-v1-1.xlsm" vers la feuil4 (parametres) de mon fichier et en collant un nouveau programme de Marche (de nouvelles valeurs de marche) j'ai eu ce message.

image

et quand je clique sur déboguage voilà ce qu'il surligne

image

hello,

Le tableau de synthèse en dessous commence à quelle ligne ?

@+

bonsoir

beh les deux tableaux commencent à la même cellule D39 et même l'emplacement des tableau source est le même

image

mais peut la seule différence que dans mon fichier de travail, il y a d'autres tableaux à la droite du tableau source pour un calcul statistiques et autres calculs mais çà ne l'affecte pas, il utilise des données à partir de la table source mais pas dans le sens contraire

*Autre remarque lors de son execution pour remplacer les zéro par une chaine vide, le code remplace tous les zéros la feuilles ce n'est pas limité uniquement à la table source, même les zéros des formules dans la table récap aussi (j'ai même demandé de l'aide à chat GPT)

j'ai essayer de bidouiller mais bien sur c'est sans succès

je crois que c'est ici l'histoire des zéros

Range("C6:" & Col2Let(DerColonneTableauSource) & "256").Replace What:=0, Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

ColonneDesHeures = 2

a+

Rechercher des sujets similaires à "extraire heures marche partir tableau programme journalier"