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 :

Problème de structure avec des opérateurs logiques [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut Problème de structure avec des opérateurs logiques
    Bonjour à tous

    Je vous sollicite aujourd'hui car je n'arrive pas à trouver la bonne combinaison d'opérateur logique pour compter des éléments en tenant compte de nombreux critères.

    J'explique !
    Je veux compter le nombre d'éléments compris ds un intervalle de temps donné.
    J'ai dû préalablement faire une différence entre deux dates.Cette différence est en années, en mois et en jours.

    N.B: pour chaque unité de temps il y a une colonne de référence. Il y a donc une colonne pour les années, une colonne pour les mois et une colonne pour les jours.

    Les critères sont les suivants:
    - x<= 1 mois;
    - 1<x<=6 mois;
    - 6<x<=12 mois;
    - x>12 mois.


    En faite je souhaite compter le nombre ligne correspondant à plusieurs critère.

    Par exemple ligne 2: pour le critère 1 mois < x <= 6 mois, x élement compris dans l'intervalle de temps défini.

    ligne 2 Colonne A: contenu doit commencer par "TH*"
    ligne 2 Colonne S: contenu doit être égale à "BRIVE"
    ligne 2 Colonne AQ(années): contenu doit être égale à 0.
    ligne 2 colonne AR (mois): contenu doit être égale à une valeur comprise dans l'intervalle [1;6] mois.
    ligne 2 colonne AS (jours): contenu doit être égale à une valeur comprise dans l'intervalle [0;30]jours.

    sauf que dés lors qu'on a 6mois il faut obligatoirement 0jours!

    alors que quand il y a 1 mois les jours peuvent varier de 0 à 30 jours.

    Ainsi c'est une véritable logique à adopter!

    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim B1 As Range, btr1 As Long 
     
    Set DateRange = Range([A1], Cells(Rows.Count, 1).End(xlUp))
     
    For Each B1 In DateRange
     
    If B.Value Like "TH*" Then
    If (B1.Offset(, 42).Value = 0) And (B1.Offset(, 43).Value >= 1) And B1.Offset(, 44).Value <= 30 Xor _
    (B1.Offset(, 44).Value <= 6) And B1.Offset(, 44).Value <= 0 Then
     
        btr1 = btr1 + 1
     
    End If
    End If
    Next B1

    J'ai essayé les opérateurs logiques Or ou Xor; mais je pense que c'est mon code qui n'est pas assez structurer pour répondre totalement au critère correspondant.
    En fait le code précédent ne prend pas en compte tout les résultats possibles, j'ai l'impression...

    Pouvez-vous m'aider à résoudre ce problème?

    Je vous remercie d'avance pour vos réponses .

    Cordialement
    Tiviia

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    A mon avis ce serait beaucoup plus simple de tout mettre en jour (au moins pour les calculs)

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    Le problème est que les mois ont un nombre de jours différent.

    Ainsi, je calcule la différence en années, en mois et en jour pour avoir des résultats fiables.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    En VBA utilise le code ci dessous pour avoir le nombre de jour entre 2 dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff("d", "01/01/2013", "28/02/2013")
    La formule précédente fait la meme chose mais dans une feuille de calcum

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    J'ai utilisé cette fonction au début, mais j'avais des problèmes de format de date ( Format Français et Format us).

    Bref cette fonction n'a pas su répondre aux exigences de mon problème; c'est à dire compter le nombre d'éléments dans un intervalle donné.

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

Discussions similaires

  1. [XL-2010] Problème de structure avec des opérateurs logiques
    Par Tiviia dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/02/2013, 16h13
  2. Réponses: 7
    Dernier message: 27/09/2012, 17h29
  3. Réponses: 1
    Dernier message: 25/05/2011, 13h55
  4. Problème de "select" avec des valeurs a null
    Par SchpatziBreizh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2005, 17h08
  5. Réponses: 6
    Dernier message: 19/10/2004, 14h46

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