IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro de durée d'un traitement


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'exploitation

    Informations forums :
    Inscription : Août 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Macro de durée d'un traitement
    Bonjour,

    Je souhaite faire une macro qui retrouve une chaîne de caractère (nom d'un job) dans ma feuille excel et qui me calcul la durée du traitement en minutes.
    Par exemple mon job "toto" à commencer à 18h00 et c'est terminé à 19h30. je voudrais que la macro me retourne 93 dans une autre cellule.

    le job sera au milieux de plusieurs autres.
    la disposition dans la feuille excel sera :
    le nom des jobs en colonne A
    le début du traitement en colonne B
    et la fin du traitement en colonne C

    Merci à ceux qui pourrons m'aider.

  2. #2
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    bonjour,

    Avec une simple formule

    A B C
    1 12:35 16:26 231
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(HEURE(B1)*60+MINUTE(B1))-(HEURE(A1)*60+MINUTE(A1))
    Mettre la formule puis l'étendre cela donnera le temps pour toutes les lignes
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'exploitation

    Informations forums :
    Inscription : Août 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci pou la formule.

    Par contre ça marche si on connait la ligne où est positionné le job.
    Dans mon cas celui-ci est au milieu d'autre et jamais au même emplacement.

  4. #4
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Il suffit juste d'adapter la formule à la ligne correspondante
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'exploitation

    Informations forums :
    Inscription : Août 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Mais je vois pas comment retrouver la ligne via une macro.
    C'est une action que j'ai à faire tous les jours a mon travail et la faire manuellement prend du temps.

  6. #6
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    pourquoi faire une macro alors qu'un simple filtre permettant le tri permet d'obtenir la ligne
    sinon il faudrait déjà que tu nous montre le code que tu as entrepris et si ce n'est pas encore fait,
    il est possible d'en faire un sans connaitre VBA, voir ce lien :
    http://fauconnier.developpez.com/tut...istreur-macro/
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'exploitation

    Informations forums :
    Inscription : Août 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    J'ai une trentaine de jobs a checker. j'ai indiqué une seul sur la présentation pour que ça soit plus simple.
    Donc faire un filtre ne resou mon problème qu'a moitier.
    Je vais regarder le sujet que tu m'as indiqué mais de ce que j'ai vus en survolant c'est pour enregistrer une macro via l'enregistrement.
    Or comment lui faire dire tu cherche un job et tu prend la durée du traitement.
    J'arrive a faire une recherche, faire une durée mais pas à combiné les deux.

    Comme les traitement change de ligne tous les jours ça complique ce que je veux faire.

  8. #8
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,

    en journée je n'ai quasi pas de temps … …

    PS : pour infos ce forum n'est pas là pour faire le travail d'autrui, mais pour donner une aide lorsqu'un forumeur rencontre un problème sur le code qui l'a entrepris.
    Même les débutants (même si ils n'y connaissent rien ) sont aidés, à conditions que ceux-ci fassent un effort en essayant de présenter un code (même si celui-ci n'est pas probant, il faut bien débuter un jour comme tout),
    que ça soit un code fait de A à Z représentant le début jusqu'à la fin de celui-ci avec les erreurs qu'il peut comporter, où même des parcelles de codes faisant tels ou tels actions et que l'on a du mal à assembler.
    Donc comme tout débutant devant commencer par un commencement, l'enregistreur de macro est là pour ça et représente le premier pas (il donc possible, si on ne sait pas faire de vba, de présenter plusieurs actions que l'on ne sait pas forcément assembler)

    A voir (de petites lectures mais nécessaire) :
    Range.Cells
    Objet Plage
    Différence entre Range et cells
    Description de l'objet Feuille de calcul dans Excel
    Worksheet.Range
    Range.Formula <= obligation de mettre les formules en anglais - plus compliqué pour un début
    Propriété Range.FormulaLocal <= plus simple
    Utiliser les variables en VBA Excel
    La gestion des boucles dans Excel
    Et tout cela est dans la Faq

    Je souhaite faire une macro qui retrouve une chaîne de caractère (nom d'un job)
    Manipuler les chaînes de caractères en VB6 et VBA Excel
    Voir aussi les condtions avec If … Then (faire une recherche sur le net)

    calcul la durée du traitement en minutes
    j'ai donnée une formule
    ces liens pouvant aidés :
    Ecrire une formule dans Excel à l'aide d'une procédure VBA
    Ecrire une formule dans Excel à l'aide d'une procédure VBA (Part 2)

    le nom des jobs en colonne A
    donc faire une recherche en colonne A : utilisation de Find ou Find Next selon le contexte
    Range.Find
    Pourquoi ai-je une erreur lors d'une recherche si la valeur n'existe pas ?

    C'est déjà pas mal, et ce sera surement plus simple de comprendre par la suite.
    Par contre il serait bienvenue que tu exprimes clairement le sujet de la discussion en étant le plus explicite (tous les détails comptent) avec les tenants et aboutissants afin que l'on comprenne exactement le contexte et la problématique à solutionner.
    Voilà
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'exploitation

    Informations forums :
    Inscription : Août 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Après tes réponses RyuAutodidacte j'ai complètement changé ma façon de traiter mon problème.

    Sur la deuxième feuille j'aurais mon extraction des jobs avec le nom et la date de début de fin
    Nom : feuille 2.jpg
Affichages : 215
Taille : 31,4 Ko

    Sur la feuille 1 les formules seront déjà prête.
    Nom : feuille 1.jpg
Affichages : 251
Taille : 36,7 Ko

    J'arrive grâce à à ce code à trouver l'emplacement de mon job
    localise = Cells.Find("titi", , xlValues).Address
    Ce que je n'arrive pas c'est à copier le résultat dans ma cellule B3 sur la feuille 1(pour le job titi).

    Est ce que quelqu'un peu m'aider?
    Images attachées Images attachées  

  10. #10
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,

    avec la configuration des données que je viens de voir il suffirait juste d'utiliser une simple formule comme INDEX EQUIV ou encore plus simple, un RECHERCHEV

    Par contre l'info que je n'ai pas : y a t-il des doublons avec les jobs?

    Edit : exemple

    En Feuil1 :

    tata 05/08/17 10:55 05/08/17 16:55
    titi 05/08/17 12:51 05/08/17 16:56
    toto 05/08/17 09:57 05/08/17 15:57
    tutu 05/08/17 08:57 05/08/17 11:57

    En Feuil2 :

    titi toto tutu tata
    début du job 5/8/17 12:51 5/8/17 9:57 5/8/17 8:57 5/8/17 10:55
    fin du job 5/8/17 16:56 5/8/17 15:57 5/8/17 11:57 5/8/17 16:55
    durée 245 360 180 360

    Les formules à étirer se trouvant en Feuil2 :

    titi
    début du job =RECHERCHEV(Feuil2!B$2;Feuil1!$A$1:$C$4;2;0)
    fin du job =RECHERCHEV(Feuil2!B$2;Feuil1!$A$1:$C$4;3;0)
    durée =(HEURE(B4)*60+MINUTE(B4))-(HEURE(B3)*60+MINUTE(B3))
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Technicien d'exploitation
    Inscrit en
    Août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'exploitation

    Informations forums :
    Inscription : Août 2017
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Non il n'y auras pas de doublons dans les noms des jobs.
    Je connaissait pas la fonction recherchev

    Il y as juste une erreur dans tes formule, tu indique "Feuil2!B$2" au niveau du texte recherché mais c'est "Feuil2!B$1".
    Cela fonctionne nickel. Je vais pouvoir adapter cette fonction à tous les jobs que je vais devoir rechercher.

    Encore Merci pour cette réponse et le temps que tu as passé.
    Je passe le sujet en résolu

  12. #12
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    les formules sont faites par rapport a tes captures, il n y a pas d'erreur
    après les formules sont toujours à adapter à ton fichier
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Durée d'un traitement
    Par Wise_Sherkaan dans le forum Langage
    Réponses: 3
    Dernier message: 12/02/2015, 01h32
  2. macro langage pour automatiser le traitement des tables
    Par SASMetrics dans le forum Macro
    Réponses: 7
    Dernier message: 29/01/2010, 15h51
  3. Réponses: 3
    Dernier message: 28/02/2007, 18h46
  4. mesurer la durée d'un traitement
    Par ljoly dans le forum Oracle
    Réponses: 7
    Dernier message: 30/08/2006, 11h49
  5. Durée d'un traitement temps réel
    Par Almex dans le forum C
    Réponses: 5
    Dernier message: 29/03/2003, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo