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 :

heure et tranche horaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut heure et tranche horaire
    Bonjour à vous tous,

    Je voudrais que ma macro associe une valeur 1, 2, 3 à une tranche horaire :
    1 pour 5 à 13 h (strictement supérieur à 5h)
    2 pour 13 à 21 h (strictement superieur à 13h)
    3 pour 21 à 24 h et 0 à 5 h(strictement superieur à 21h)

    je ne comprends pas pourquoi, quand j'execute mon cote la tranche horaire qui s'affiche est 3 (avec n'importe quelle valeur de l'heure).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'report de l'heure dans la feuille statistique
    Worksheets("Fiche d'intervention").Range("B" & 12).Copy Worksheets("Statistiques").Range("B" & 4)
    Worksheets("Statistiques").Activate
     
    'détermination de la tranche horaire
    Range("C4").Value = Format(Range("B4").Value, "HH")
    If [C4] > 5 And [C4] <= 13 Then [D4] = 1
    If [C4] < 13 And [C4] <= 21 Then [D4] = 2
    If [C4] > 0 And [C4] <= 5 Then [D4] = 3
    If [C4] < 21 And [C4] <= 24 Then [D4] = 3
    Si vous voyez l'erreur dans mon code n'hésitez pas !

    Merci d'avance,

    Bonne soiree !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut lilou86 et le forum
    c'est parce que tu effectues tes tests sont faux :
    A - If [C4] > 5 And [C4] <= 13 Then [D4] = 1
    B - If [C4] < 13 And [C4] <= 21 Then [D4] = 2
    C - If [C4] > 0 And [C4] <= 5 Then [D4] = 3
    D - If [C4] < 21 And [C4] <= 24 Then [D4] = 3

    C4=6
    avec le test A => VRAI donc D4 = 1 et on passe au test B
    avec le test B => VRAI donc D4 = 2 et on passe au test C
    avec le test C => VRAI donc D4 = 3 et on passe au test D
    avec le test D => VRAI donc D4 = 3

    Tu n'auras que 3, parce que toute valeur comprise entre 5 et 13 est inférieure à 21

    Par quatre tests indépendants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If [C4] > 5 And [C4] <= 13 Then [D4] = 1
    If [C4] > 13 And [C4] <= 21 Then [D4] = 2
    If [C4] > 0 And [C4] <= 5 Then [D4] = 3
    If [C4] > 21 And [C4] <= 24 Then [D4] = 3
    Par des tests combinés (on peut aussi utiliser select case) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If 5 < [C4] And [C4] <= 13 Then 
         [D4] = 1
    elseIf 13 < [C4] And [C4] <= 21 Then 
         [D4] = 2
    else
         [D4] = 3
    endif
    Je préfére avoir tous mes signes en "inférieurs", c'est plus lisible
    A+

Discussions similaires

  1. Calcul d'heures par tranche horaire
    Par A0080 dans le forum Excel
    Réponses: 11
    Dernier message: 05/03/2008, 14h19
  2. Problème de tranche horaire.
    Par jeremie74 dans le forum Requêtes
    Réponses: 3
    Dernier message: 25/07/2006, 16h33
  3. Requête tranche horaire disponibilité
    Par jeremie74 dans le forum Requêtes
    Réponses: 8
    Dernier message: 25/07/2006, 16h08
  4. Récupérer des enregistrements par tranche horaire
    Par olive_le_malin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 19/05/2006, 16h53
  5. Calcul de tranches horaires
    Par zach dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 02/08/2005, 08h26

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