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 :

Calculs des écarts de dates en jours et synthèse par année [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Le Gnark
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juin 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 19
    Par défaut Calculs des écarts de dates en jours et synthèse par année
    Bonjour à tous,
    Je suis actuellement dans l'impasse la plus totale!
    Je souhaiterai créer un tableur excel permettant de calculer le nombre de jours de déplacement entre 2 colonnes de dates, avec une synthèse par année.
    Je dispose d'un tableau de 2 colonnes :
    A = Dates de sortie (au format JJ/MM/AAAA)
    B = Dates de retour (au format JJ/MM/AAAA)
    Dont le nombre de ligne n'est pas défini (illimité)
    L'objectif serait de calculer l'écart entre chaque dates, et de faire un "bilan" par année. ci joint une capture d'écran (ici les colonnes vertes sont calculées à la mimine) :
    Nom : exemple.JPG
Affichages : 663
Taille : 46,7 Ko
    C'est à ce niveau que mes limites VBA sont atteintes!!
    Je n'arrive pas du tout du tout à réaliser ce type de macro, entre autre car il peut y avoir des écarts de plus de 365 jours.

    Auriez vous des solutions à m'apporter svp?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En ajoutant une colonne pour calculer le nombre de jours entre les deux dates, la réponse est du même tonneau (de beaujolais nouveau) que dans ce message :
    https://www.developpez.net/forums/d2...re-specifique/
    Le VBA n'est pas nécessaire.

    Pour les lignes sur plusieurs années (2016-2018) : dédoubler les lignes pour faire apparaître un couple de dates pour chaque année afin que le TCD affecte bien les jours à la bonne année.

  3. #3
    Membre averti Avatar de Le Gnark
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juin 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 19
    Par défaut
    Merci pour votre réponse,
    Je vais effectuer les test ce soir et donnerai mes résultats demain.
    Mais ce fichier doit être par la suite partager avec des collaborateur, + ou - initié à l'utilisation d'excel, et donc l'ajout de formule et le dédoublement de lignes dans des cas spécifiques risquent de poser problème à l'utilisation, avec de plus des risques d'erreurs.
    D'où l'idée de créer des macros afin de donner le résultat (partie verte) d'un simple clic après saisie des dates de sorties et retour.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Le Gnark Voir le message
    Essayez cette fonction :
    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
    16
    17
    18
    19
    20
     
    Function DecompteJoursAnnee(ByVal AnneeEtudiee As Variant, ByVal AireDates As Range) As Long
     
    ' AireDates = l'aire des dates de la colonne Date de sortie
    ' Le décompte est réalisé à partir du jour suivant de la date de sortie pour chaque couple de dates.
     
    Dim I As Long
    Dim DateEncours As Date
     
        Application.Volatile
     
        DecompteJoursAnnee = 0
     
        For I = 1 To AireDates.Count
            For DateEncours = CDate(AireDates(I)) + 1 To CDate(AireDates(I).Offset(0, 1))
                If Year(DateEncours) = AnneeEtudiee Then DecompteJoursAnnee = DecompteJoursAnnee + 1
            Next DateEncours
        Next I
     
    End Function
    Pièce jointe 518975

  5. #5
    Membre averti Avatar de Le Gnark
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juin 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 19
    Par défaut
    Super fonction!
    Merci beaucoup!!

    J'ai juste modifié un détail pour exclure la date de sortie :
    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
    16
    17
    18
    Function DecompteJoursAnnee(ByVal AnneeEtudiee As Variant, ByVal AireDates As Range) As Long
     
    ' AireDates = l'aire des dates de la colonne Date de sortie
     
    Dim I As Long
    Dim DateEncours As Date
     
        Application.Volatile
     
        DecompteJoursAnnee = 0
     
        For I = 1 To AireDates.Count
            For DateEncours = CDate(AireDates(I)) To CDate(AireDates(I).Offset(0, 1))
                If Year(DateEncours) = AnneeEtudiee Then DecompteJoursAnnee = DecompteJoursAnnee + 1
            Next DateEncours
        Next I
     
    End Function
    Il ne me reste plus qu'a bosser sur la totalité de la mise en forme, avec agrémentation automatique des date dans la colonne et application de la fonction pour chaque.

  6. #6
    Membre averti Avatar de Le Gnark
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juin 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 19
    Par défaut
    Maintenant je suis de nouveau bloqué...

    En effet, j'aimerai que les années à calculer se complètent automatiquement dans la colonne E.
    En gros, que les utilisateurs ne saisissent que les dates de sorties et de retours, et que les années se reportent avec le calcul de jours.
    Et je n'y arrive pas, sans même l'ombre d'une piste!!!

    Auriez vous une idée???

    ci-joint le tableurCalculatrice jours sorties.xlsm

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

Discussions similaires

  1. Calcul d'écart de date (année, mois, jour,etc)
    Par le.dams dans le forum Access
    Réponses: 7
    Dernier message: 08/01/2011, 17h47
  2. Calculer des indispo entre dates
    Par jibileg dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/11/2008, 18h14
  3. Calcul d'écart de date dans BO
    Par tang121 dans le forum Deski
    Réponses: 8
    Dernier message: 20/12/2007, 09h43
  4. récupération des données < à la date du jour mysql
    Par maysa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/07/2007, 21h17
  5. [Dates] Afficher des données à la date du jour
    Par rastatom dans le forum Langage
    Réponses: 10
    Dernier message: 18/05/2006, 11h37

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