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 :

calcul des dates jours ouvrés avec une function [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é
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Par défaut calcul des dates jours ouvrés avec une function
    Bonjour a tous

    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
    21
    22
    23
    24
    25
    26
    Public Function RespDelais(startD As Date, delais As Integer) As Date
     
        'Return the estimated date of answser
        Dim i As Double
        Dim u As Integer
        Dim k As Integer
        u = 0
        For i = 0 To delais
            If Weekday(DateAdd("d", i, startD), vbMonday) > 5 Then
            u = 2
            'Adds 2 days if it overlaps the weekend
            End If
        Next i
     
        If Weekday(DateAdd("d", delais + u, startD), vbMonday) = 6 Then
            k = 2
        ElseIf Weekday(DateAdd("d", delais + u, startD), vbMonday) = 7 Then
            k = 1
            'Adds 2 days if it overlaps the weekend
        Else
            k = 0
        End If
     
        RespDelais = DateAdd("d", delais + u + k, startD)
     
    End Function
    J'ai des dates sur la colonne G et jaimerais créer une variable qui prend la valeur de toutes les cellule de cette colonne 1 par 1 => puis calcule la nouvelle date avec cette function et la place dans la cellue de la colonne I .

    Merci

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour
    ...et.. du coup... quelle est ta question?
    Tu as un erreur quand tu lances ta fonction? Si oui, où et quelle erreur?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Par défaut
    Voila ou ma function est appelé et ou je rencontre l'erreure :

    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
    Sub calcul_leadtime()
    ligne = 3
    Dim datec As Date
    Dim cellu As cell
    Dim del As Integer
     
    With Sheets("Suivi_Faisa")
    For Each cellu In Range("G4:G1000000")
            ligne = ligne + 1
                del = 4
                datec = Cells(ligne, 7)
                .Cells(ligne, 9).Value = RespDelais(datec, del)
            Next cellu
    End With
    End Sub
    J'ai essayé de boucler au niveau de toutes les lignes .

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    OK, mais quelle erreur, quel message d'erreur? Sur quelle ligne exactement?

    Déjà, datec est une valeur et pas une cellule, donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datec = Cells(ligne, 7).Value
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datec = Cells(ligne, 7)


    Et
    Au lieu de

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Par défaut
    Oui c vrai Merci , la ça marche nickel

    Seul soucis j'aimerai ajouter un condition si cellule vide ne pas prendre en compte .
    Parceque la il a fait toutes les cellules de la colonne .

  6. #6
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    La fonction isEmpty te permet de vérifier si la cellule est vide:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim myCell as Range
    If isEmpty(myCell) = False Then      'si la cellule n'est pas vide, alors
        'je fais ce que j'ai à faire
    End If

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

Discussions similaires

  1. [XL-2003] Coment filtrer sur des dates dans Excel avec une macro
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/03/2010, 14h47
  2. Probleme avec des dates/jours ouvres
    Par progfou dans le forum Excel
    Réponses: 10
    Dernier message: 11/02/2009, 12h58
  3. Calcul de date / jours ouvrés
    Par Elumastebit dans le forum Excel
    Réponses: 4
    Dernier message: 23/10/2008, 20h55
  4. Calcul des dates et des jours ouvrés
    Par okparanoid dans le forum Langage
    Réponses: 2
    Dernier message: 08/12/2007, 16h50
  5. [Q] VB Excel: Macros calcul de date jours ouvrés
    Par naouara17 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 13h59

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