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 :

Incrémentation automatique de la 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 confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut Incrémentation automatique de la date
    bonsoir,

    je suis coincé et pourtant je suppose que ça doit être tout simple pour des experts, mais pour moi qui débute pas évident.

    Voilà j'ai fait un userform et je veux que la date de la saisie s'affiche dans le formulaire à chaque initialisation et soit reporter dans mon tableau ensuite.

    J'ai cherché partout sur le net et le forum mais j'ai pas trouvé ce que je voulais.

    pouvez vous m'aider ça m'arrangerait s'il vous plait.

    merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut

    Pour afficher la date dans un contrôle (par exemple une zone texte nommée txtDateSaisie), tu peux utiliser ce code qui sera exécuté à l'initialisation du userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
      txtDateSaisie.Value = Format(Date, "dd/mm/yyyy")
    End Sub
    Pour passer la date à une cellule de la feuille, puisque c'est la date du jour, je te conseille de la passer directement, sans passer par une "interprétation" de la date affichée dans le contrôle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("a1").value=date()
    Ne perds pas de vue que la date est un nombre, pour Excel, et qu'une valeur saisie dans un contrôle est du texte. VBA interprète habituellement les dates au format mm/dd/yy et 09/04/11 <> 04/09/11.

    Tu liras avec intérêt ce tuto d'Ormonth sur les dates en VBA.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    Merci pour l'aide que tu m'as apportée.

    ça marchait , mais plus maintenant il me met erreur '1004'
    la méthode select de la classe range a échoué

    et lorsque je fait débogage pas à pas, il se mets sur la ligne de la commande de la date !!

    est ce que ça à rapport ma question que tu m'as déplacée ?

    je te joins mon fichier http://www.cijoint.fr/cjlink.php?fil...cijC4pM6Qq.xls

  4. #4
    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,
    Ce code renvoie une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range("A5").Select
    Celui-ci ne renvoie pas d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Feuil2").select ' ou Sheets("Feuil2").Activate
    Range("A5").Select
    Cependant, il est parfaitement inutile en VBA d'utiliser le Select et l'Activate pour accéder aux propriétés d'un Range.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AOIForm1.N°Box1.Value = Range("A4").Value + 1
    ' Sheets("enregistrement").Range("A5").Select <<< Ligne à supprimer
    num = Sheets("enregistrement").Range("A5").Value + 1
    Sheets("enregistrement").Range("A4").Value = num
    J'avoue ne pas bien comprendre comment tu gères l'incrémentation de tes nombres. Je crois qu'il y a confusion entre A4 et A5 mais je n'ai pas fort approfondi la question.
    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

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour Corona
    Citation Envoyé par corona Voir le message
    Celui-ci ne renvoie pas d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Feuil2").select ' ou Sheets("Feuil2").Activate
    Range("A5").Select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Code dans Feuil3
    Public Sub ContreExemple()
    Sheets("Feuil2").Select ' ou Sheets("Feuil2").Activate
    Range("A5").Select
    End Sub
    Ce code envoi aussi une erreur si ce code est mis dans le module d'une feuille autre que Feuil2.

    Bon, on fait, je vous joins de l'inutilité de Sélectionner dans ce cas

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    merci j'ai réussi à modifier et ça marche

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    A priori, pas de rapport avec ton autre question...

    Le fichier joint n'est pas toujours utile. Il est préférable de joindre le code que tu as utilisé en précisant sur quelle ligne le problème se pose

    Cela étant, il n'est que rarement utile de sélectionner une cellule pour pouvoir la manipuler. Il est en général plus indiqué de l'adresser directement, comme je l'ai exposé dans le code que je t'ai donné.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. [AC-2010] Incrémenter automatiquement un ou plusieurs jours de la semaine (Date)
    Par voldorak dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/04/2013, 11h57
  2. Ajout automatique de la date..
    Par Karibou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/02/2006, 09h34
  3. Incrémentations année avec format date
    Par krfa1 dans le forum ASP
    Réponses: 3
    Dernier message: 14/11/2005, 16h05
  4. [MySQL] Refresh automatique d'une date
    Par glloq8 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 10h16
  5. incrémenter automatiquement un champ d'un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/09/2005, 08h42

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