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 :

optimiser une boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut optimiser une boucle
    Bonjour a tous,

    Je travail sur un programme de plannification de personnel et je suis plus que debutant en VBA (formation d'hydrogeologue).

    Je voudrais realiser une boucle qui cherche pour deux dates donnees par l'utilisateur (date1, date2, definnisant un interval pour une tache) dans deux colonnes (dateA, dateB respectivement date de debut et date de fin definissant aussi un interval par exemple conges, occupes sur une autre tache) les choses suivantes:
    - pour ne pas ralentir l'algorythe je voudrais que si l'interval recheche (date1, date2) ne chevauche aucun autres intervals type dateA/dateB, l'algorythe passe a la ligne suivante jusqu'a rencontrer les lignes qui ont un interet
    - que l'algorithe sorte de la boucle si il n'y a pa de donnees enregistrees dans la case (blanc).

    J'espere avoir ete clair, c'est pas evident a explique avec les bons termes.

    Merci d'avance et a bientot.

    Bolloche

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour

    - pour ne pas ralentir l'algorythe je voudrais que si l'interval recheche (date1, date2) ne chevauche aucun autres intervals type dateA/dateB, l'algorythe passe a la ligne suivante jusqu'a rencontrer les lignes qui ont un interet
    mais encore?
    c'est un peu nébuleux comme énoncé là!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    Bonjour,
    je me doutais que ce n'etais pas tres clair (au fait j'ai pas d'accent sur mon clavier).
    Je vais essayer par un exemple:
    J'ai une tache de projet definit par 15/06/2008 (date1) a 20/06/2008 (date2).
    Je veux rechercher la disponibilite d'un employe.
    conge: du 10/06/2008 au 13/06/2008: programme passe a la ligne suivante car aucun interet.
    sur le terrain: du 13/06/2008 au 17/06/2008: cet interval chevauche le premier donc il interesse mon programme.

    J'espere que c'est plus clair.

    Merci pour cette reponse rapide.

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    je résume
    tu veux savoir si un employé est disponible dans la plage souhaitée?

    si oui, doit -il etre disponible dans l'entièreté de la plage ou seulement une partie?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    seulement une partie, il faut juste que linterval de requete chevauche celui de l'employe.

    Merci

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    alors, c'est très simple

    tu dois tester
    un test sur le début des congé de l'emplyé par rapport à la plage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim dtDebuCongEmp As Date, dtFinCongEmp As Date
    Dim dtDebuPlage As Date, dtFinPlage As Date
    Dim CondOk As Boolean
     
    If dtDebuCongEmp < dtFinPlage And dtDebuCongEmp > dtDebuPlage Then
            CondOk = True
    ElseIf dtFinCongEmp < dtFinPlage And dtFinCongEmp > dtDebuPlage Then
            CondOk = True
    ElseIf dtDebuCongEmp < dtDebuPlage And dtFinCongEmp > dtFinPlage Then
            CondOk = True
    End If
    End Sub

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

Discussions similaires

  1. Optimiser une boucle For Each
    Par zaghi dans le forum VB.NET
    Réponses: 14
    Dernier message: 21/06/2012, 11h19
  2. optimiser une boucle while imbriquer dans une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/01/2010, 15h35
  3. optimiser une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/01/2010, 14h22
  4. [MySQL] Cherche a optimiser une boucle avec SELECT [.] FROM [.] IN
    Par Kijer dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/07/2008, 14h36
  5. Réponses: 4
    Dernier message: 17/01/2006, 19h17

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