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 :

Stopper une date [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 19
    Par défaut Stopper une date
    Bonjours à tous,

    Je voudrais savoir s'il est possible de stopper une date sous excel 2003 grâce à une formule.

    Je m'explique : J'ai utilisé une formule pour calculer les jours passés qu'ils me restent entre la date du jour et la date création de poste. Le processus recrutement étant de 85 jours j'ai également utilisé une mise en forme conditionnelle (bleu quand les jours passés sont <=85 et rouge quand les jours passés sont >=86) Bref tout cela est ok !

    Maintenant mon problème : Quand j'écris dans ma cellule "Etat" : Pourvu, je voudrais que dans ma cellule "Jours passés" les jours s'arrêtent. Ce qui va me permettre à chaque fin de mois, de savoir si je respecte mon processus recrutement de 85 jours ou non.

    En espèrant avoir été le plus clair possible... et que vous pourrez m'aider !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Qu'entends-tu par
    je voudrais que dans ma cellule "Jours passés" les jours s'arrêtent
    S'agit-il de bloquer l'encodage d'une date dépassée ou l'affichage d'un tableau jusqu'à une date donnée ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    En supposant que tu as placé la date création de poste en colonne A, le nombre de jours passés en colonne C et l’état en colonne C (les données commencent en ligne 2, la ligne 1 étant utilisée pour l’en-tête).
    Si tu inscris la formule =AUJOURDHUI()-A2 en B2, l’affichage va évoluer chaque jour.
    Rien de plus normal puisque c’est le but du suivi.

    Pour figer le résultat, il va falloir remplacer la formule par un résultat fini.
    La macro suivante effectue ce remplacement lors du changement d’état.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Private Sub Worksheet_Change(ByVal Target As Range)
    'Si le changement se produit dans une cellule de la colonne C (et une seule)
    If Not Intersect(Target, Columns(3)) Is Nothing And Target.Count = 1 Then
        'Si la valeur de la cellule modifiée est "Pourvu", _
        inscrire le nombre de jours entre la date de création du poste et aujourdh'hui.
        If Target.Value = "Pourvu" Then Target.Offset(0, -1).Value = Date - Range("A" & Target.Row)
    End If
    End Sub
    Cordialement.

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 19
    Par défaut
    Bonjour Corona,

    En fait je souhaite que quand ma cellule "Postes restants" est à 0, que dans ma cellule "Jours passés" qui a comme formule : =AUJOURDHUI()-date création poste s'arrête tout simplement.

    Admettons aujourd'hui je viens d'embaucher une personne, le poste n'est plus à pourvoir. Dans ma cellule "Postes restants" ma ligne est à 0, et dans ma cellule "Jours passés" ma ligne est à 82 (jours).

    Ce que je souhaite c'est que demain en ouvrant mon fichier excel ma cellule "Jours passés" reste à 82 jours et non 83 jours, etc...

    Bonjour gFZT82,

    Je ne connais pas super bien excel et je ne connais pas du tout les macros...

    Comment dois-je procéder pour mettre en place la macro que vous m'avez donné ?

    Cordialement.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Vous faites ALT + F11.

    Vous allez arriver dans le gestionnaire de Macros d'Excel. Vous recherchez dans une colonne à gauche le nom de la feuille dans laquelle vous devez copier cette macro.

    Vous recopiez les données en veillant à bien modifier la macro par rapport à vos données. Vérifiez également que votre degrés de sécurité vous permette l'utilisation des marcos.

    A votre service

    René

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans code VBA, tu prévoies une cellule pour la date d'engagement et tu fais précéder ta formule de calcul de jours par un SI
    Petit exemple simple sans tenir compte des jours ouvrés et donc à adapter.
    En A2, date de recherche du poste et en B2, date à laquelle elle est engagée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B2;B2-A2;AUJOURDHUI()-A2)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Tu copies le code que je t’ai transmis (sélectionner tout / CTRL + C)
    Depuis ton classeur Excel, tu entres dans l’éditeur par ALT + F11 (ou via menu Développeur / Visual Basic).
    Dans l’éditeur, tu double-clique sur la feuille concernée Feuil1 (Feuil1) par exemple pour accéder au code de la feuille.
    Et tu colles le code (CTRL + V) .

    Cordialement.

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 19
    Par défaut
    Alors je suis entrée dans l'éditeur, j'ai bien copié/collé le code et après que dois-je faire ?

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

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 09h41
  2. Récupérer l'année d'une date
    Par delphim dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/01/2003, 16h33
  3. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  4. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

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