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 récalcitrante ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut Date récalcitrante ?
    Bonsoir à tous,

    Je reviens vers vous avec un ancien post
    car je m'arrache le peu de cheveux qui me restent !

    Mon soucis :
    Je saisis une date ex : 26/08/2008 dans InputBox
    - par msgbox, cela s'affiche bien
    - dans la cellule, cela s'affiche bien

    Ou cela se complique :
    - si je fait un tri par dates, cela elles ne sont pas triées
    - si je fait une recherche de : 26/08/2008 rien
    - si je fait une recherche de : 08/26/2008 il trouve la cellule qui affiche : 26/08/2008
    - si je fait un double click dans la cellule, 26/08/2008 passe en :08/26/2008
    - si je fait un double click dans la cellule, 08/26/2008 passe en :26/08/2008
    - le format de la cellule indique personnalisée et mm/jj/aaaa
    - si je mêt le format date en : date *14/03/2001, l'affichage dans la cellule s'inverse et deviens 08/26/2008
    - si je retappe 26/08/2008 a la main, la cellule ne change plus et le tri par dates fonctionne

    La feuille contiens plus de 25000 lignes et et cela m'ennuierai beaucoup
    de tout devoir changer a la main.

    Je ne comprends pas pourquoi ce foutoir !
    Je suis a cours d'idées et a la limite de la crise de nerfs.

    J'ai fait une multitude de tests mais aucun n'est concluant.

    Un détail me reviens :
    Si Je saisis la date ex : 08/26/2008 dans InputBox, la cellule de destination affiche 26/08/2008 (affichage inversé par rapport a la saisie)

    Qui peut m'aider a résoudre ce Casse-Tête ???

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut Le type de donnee differe
    Bonjour

    Attention un inputbox renvoie un type de string donc le résulat doit être pour une date il faut convertir le texte en date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Sub test()
    Dim sDte As String
     
    sDte = InputBox("Entrez la date", "Saisie", Format(Date, "dd/mm/yyyy"))
     
    Worksheets("Feuil1").Cells(1, 1) = CDate(sDte)
     
     
    End Sub
    C est important de bien type . Sinon il y a des surprises .

    L'inversion peut venir également des paramétres régionaux Anglais ou Francais
    en effet anglais c est mm/jj/aaaa et francais c est jj/mm/aaaa

    Voila ce que l'on peut dire pour ces dates récalitrantes


  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir,

    Merci de m'avoir répondu.

    Je vais tester cela et vérifier le résultat
    avec une nouvelle saisie de 200/300 lignes.

    Je vous informerai du résultat.

    @ +

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Ok, j'ai testé

    - Votre exemple fonctionne très bien avec l'affichga direct et reste fixe.


    Ou cela se complique, c'est dans le traitementdes données

    Je m'explique
    1° Saisie de la Date (variable mise en mémoire)
    2° je récupère une feuille comportant sur chaque ligne : "Réf, Article, Prix, R1, R2,R3"
    3° Je fait une boucle et en fin de ligne, j'écrit la Date et la, c'est le mème Topo Iversion en cliquant sur la cellule date.
    voici un bout de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    DerniereLigne = Range("A65535").End(xlUp).Row
    For j = 1 To DerniereLigne
         Cell(j, 1) = Prix * Remise '...
         'Cells(j, 15) = date_cour   'écrit la Date
         Worksheets("Saisie").Cells(j, 15) = CDate(date_cour)
    Next J
    Qu'ai-je fait de travers ?
    A vous lire

  5. #5
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut ?
    Format de la colonne J MM/JJ/AAAA ou JJ/MM/AAAA ......... format internationale parametres regionaux emplacement car si c'est francais canada c est normal !

    Version Excel Francais ou Anglais ? Par exemple création feuille la feuille est nommé comment Sheet1 ou Feuil1 ?

    Sinon le mieux serait un exemple de ton fichier avec donnees bridees bien sur serait la bienvenue !

    Car pour ma part je n 'ai aucun problème avec les dates dans excel directe ou via par un userform etc .......


    A la revoyure .......

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonjour,

    1° - Mème en forçant le format date, le format de cellule repasse en personnalisé jj/mm/aaaa.

    2° - Les options régionales sont ok (France) et format jj/mm/aaaa.

    3° - Excel est tout en Français (Version 2003-SP2) et Feuil1 s'affiche Feuil1.

    4° - Les sources seraient inexploitables car une connection Internet s'établit avec autentification et les données que je récupère sont cryptées avec la clé récupérée en mème temps, mais, je ne la connais pas. J'ai bien esseyé de lire toutes les variables imposées dans mon source mais je n'ai rien trouvé.

    5° - J'ai trouvé une solution provisoire mais non estétique : j'ai fait dans une feuille à part un tableau avec tous les jours de l'année lignes par lignes en colonne et tous les mois colonnes colonnes. J'ai mis en l'année en fixe dans une cellule en dehors du tableau. Pour la saisie de la date, j'ai fait deux Inputbox un pour le jour et un pour le mois et ensuite, je vais me positionner sur la cellule contenant la date en dur.

    Je sais, c'est fastidieux et inélégant mais c'est le seul moyen fiable que j'ai trouvé pour le moment.

    A vous lire

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 23/07/2002, 14h33
  2. soustraire deux dates ?
    Par joejoe dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2002, 15h53
  3. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21
  4. Réponses: 3
    Dernier message: 06/05/2002, 18h24
  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