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 :

Date fixe apres validation [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant Supply Chain
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Oman

    Informations professionnelles :
    Activité : Consultant Supply Chain
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Par défaut Date fixe apres validation
    Bonjour,

    J'ai longuement cherche sur les forums anglais, mais je n'ai pas trouve une solution qui convienne a mon probleme et la programation VBA depasse mes connaissances. Peut etre pourrez vous m'aider.

    J'utilise une version anglaise de excel (si jamais ca change quelque chose).

    Alors voila :

    Dans ma feuille en colonne A l'utilisateur peu choisir entre "YES" et "NO". Par defaut c'est "NO". J'aimerai qu'au moment ou il choisi "YES", cela inscrive la date dans la colone B. Et que cette date reste fixe.

    C'est la tout mon probleme, j'ai trouve sur un forum une proposition de fonction fixeddate()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function FixedDate()
        FixedDate = Date
    End Function
    Mais au final la cellule est recalcule a chaque ouverture ou fermeture du document et la date n'est donc pas fixe.

    J'ai par la suite trouve des codes VBA du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("B1:B20"), Target) Is Nothing Then
    Target.Offset(0, -1).Value = Format(Now, "mm-dd-yy hh:mm:ss")
    End If
    End Sub
    Mais cela ne correspond pas exactement a ce que je cherche et je ne comprend pas suffisament le code pour le modifier a mes besoins.

    Pourriez vous me conseiller. Je peu modifier ma feuille si cela facilite le code. Le principe est que sur validation d'une etape cela inscrive la date dans une case et que celle-ci ne change plus.

    Ainsi dans ma feuille actuelle les colones H,J,N et Q cherche a obtenir une date fixe quand la colone precedente indique "YES". De meme pour la colone X quand la colone I indique "COMPLETED". Toutes ces cellules contiennent une date esperee que je voudrais ecraser par la date relle.

    Merci d'avance pour votre aide.

    Cordialement,
    Gea

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour à tou(te)s, Geaxle

    Sans plus d'explication, admettons que "YES" soit en A1, la date en B1, dans ce même évènement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Change(ByVal Target As Range)
    si "yes" reste constant, je ne vois pas pourquoi la date changerais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" And Target = "YES" then
        Range("B1") = Date
    End If
    End Sub
    Cette solution répond-t-elle à ta question ?

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant Supply Chain
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Oman

    Informations professionnelles :
    Activité : Consultant Supply Chain
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Par défaut
    Merci beaucoup pour ta reponse. Cela m'a aide dans la comprehension de VBA et au final j'ai adapte le code comme suit. Cela fonctionne tres bien maintenant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Not Intersect(Target, Range("I6:I5000,K6:K5000,O6:O5000,R6:R5000")) Is Nothing Then
        If Target.Value = "YES" Then
        Target.Offset(0, 1).Value = Date
        End If
        End If
     
    End Sub
    A+
    Gea

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

Discussions similaires

  1. Problème de reset après validation
    Par zev dans le forum Struts 1
    Réponses: 4
    Dernier message: 01/06/2006, 13h42
  2. [MySQL] Afficher une date correctement après une requête
    Par Nerva dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/04/2006, 16h27
  3. Récupération valeur après validation du formulaire
    Par Bluespike62 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2006, 14h37
  4. actualiser page après validation formulai dans autre fenêtre
    Par allowen dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/01/2006, 16h02
  5. Réponses: 4
    Dernier message: 18/10/2005, 23h22

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