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 :

Problème export de dates [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 4
    Par défaut Problème export de dates
    Bonjour à tous !

    Je rencontre un problème avec le codage de mon UserForm4, il correspond à l'onglet PLANNING du fichier joint.

    Je vous expose mon but : Je souhaite pouvoir créer mon planning sur le UserForm4 et l'exporter sur mon fichier PLANNING en fonction des jours. Lorsque j'appuie sur le CommandButton "NOUVEAU", le logiciel va chercher la dernière date présente dans l'onglet PLANNING Colonne A et affiche la date du jour d'après dans le premier jour du userform. Pour le 2ème jour il affiche le jour encore après etc. Ainsi, je peux remplir mon planning avec mes combobox et textbox qui correspondent respectivement aux repas répertoriés dans "recettes" et au nombre de personnes.
    Je peux ensuite EXPORTER mon planning qui vient se mettre à la suite dans l'onglet PLANNING. Une ligne correspond à un jour.

    Voilà ce qui fonctionne :
    Lorsque je tape manuellement une date dans la dernière ligne colonne A de mon onglet PLANNING, excel reconnait la saisie comme une date. Ainsi lorsque je demande de remplir un nouveau Planning via le commande button NOUVEAU, j'obtiens bien les dates voulues et je peux remplir mon planning.

    Voilà ce qui ne fonctionne pas :
    Lorsque j'exporte ce planning, excel ne semble pas reconnaître les valeurs au format dddd dd mmm yyyy comme des dates puisque, lorsque j'essaie de faire un nouveau planning après avoir exporté celui-ci, j'obtiens une erreur d'incompatibilité de type.

    J'ai essayé une multitudes de façon de m'en sortir, ça fait 3 jours que je suis sur ce problème. J'ai essayé en utilisant des CDate, DateValue etc, j'ai essayé de repassé au format dd/mm/yyyy puis repasser en dddd dd mmm yyyy,... je ne suis pas parvenue à résoudre mon problème.

    Information importante : je souhaite conserver toutes mes dates au format dddd dd mmm yyyy.

    Je me tourne donc vers vous, auriez-vous des idées à essayer s'il vous plaît ?

    Merci

    RECETTESV13.xlsm

  2. #2
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    J'ai simulé l'exercice chez moi utilisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
        Dim maDate As Variant
     
        maDate = Format(Me.TextBox1.Value, "dddd dd mmm yyyy")
        Sheets("PLANNING").[A30] = maDate
     
    End Sub
    et ça a marché sans problème. J'ai dû créer un formulaire avec un TexBox (pour encoder la date du jour) et un bouton de commande "CommandButton1".
    Idem pour un ComboBox ou ListBox

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 4
    Par défaut
    Bonjour,
    Avez vous simuler l'import de date dans le formulaire et l'export dans l'excel ?
    Merci, j'avais testé déjà cette methode. Le problème en faisant cela c'est que mes dates sont exportées en tant que caractère dans mon tableau et donc quand la dernière est rappelée pour faire un nouveau planning il y a une incompatibilité de type et je ne peux pas faire de nouveau planning.
    Si quelqu'un à une autre idée? Je pense que mon problème vient d'une incohérence entre l'import de date dans le formulaire et l'export mais je ne parviens pas à le résoudre

  4. #4
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    Logique; par définition, un textBox ne contient que du texte, sauf si vous définissez un hyperlink ou un "Date picker" mais ça c'est un autre problème à creuser.
    Donc le textBox va exporter du texte et non des nombres.
    L'astuce consiste à :
    1. Transfromer ce texte en format date comme dans "maDate = Format(Me.TextBox1.Value, "dddd dd mmm yyyy")"
    2. Préparer le format date dans XL en préformattant la cellule réceptrice (ou en le faisant à postériori via une fonction de transformation).

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 4
    Par défaut
    Merci pour ces informations.
    C'est ce que j'essaye de faire mais ça ne fonctionne pas chez moi.
    Quelle fonction utiliseriez vous pour "préparer le format date" dans l'excel s'il vous plaît? J'ai essayé avec Cdate comme ceci. H est ma variable que j'ai essayé de mettre en Variant et en String. J'ai essayé avec et sans format(). Cela ne fonctionne pas. J'ai également essayé avec DateValue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    H = Format(Me.Controls("Textbox" & e).Value, "dddd dd mmm yyyy")
    Cells(L, 1) = Format(DateValue(H), "dddd dd mmm yyyy")
    J'ai également essayé avec y déclaré en Date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    H = Format(Me.Controls("Textbox" & e).Value, "dd/mm/yyyy")
    y = CDate(H)
    Cells(L, 1) = y
    J'ai toujours "incompatibilité de type"

    Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(L, 1) =Format(Me.Controls("Textbox" & e).Value, "dddd dd mmm yyyy")
    Alors j'ai mes informations qui sont bien exportées mais toujours en texte au lieu de date ce qui fait que je suis bloquée pour la suite.
    Merci

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    La fonction CDate ne reconnais le nom du jour en entier, il faut le supprimer :
    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
    Private Sub CommandButton1_Click()
    Dim d As Date
    Dim s As String
     
      ' Charger la date contenue dans la cellule A2
      d = Worksheets("PLANNING").Range("A2").Value
      ' Placer la date dans le textbox
      Me.TextBox1.Value = Format(d, "dddd dd mmm yyyy")
     
      ' Lire le textbox
      s = Me.TextBox1.Value
      ' Supprimer le jour ddddd
      s = Mid(s, InStr(1, s, " ") + 1)
      ' Convertir en date
      d = CDate(s)
      ' Ecrire la date dans la cellule A3
      With Worksheets("PLANNING").Range("A3")
        .NumberFormat = "dddd dd mmm yyyy"
        .Value = d
      End With
     
    End Sub

  7. #7
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 4
    Par défaut
    Merci beaucoup ça marche parfaitement !!

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

Discussions similaires

  1. [xlswrite] Problème pour exporter des dates
    Par Bonois dans le forum MATLAB
    Réponses: 8
    Dernier message: 15/05/2008, 11h14
  2. [oracle][delphi] Problème format de date dans une requete
    Par le_parrain dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/07/2005, 10h12
  3. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  4. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18
  5. Interbase - dbExpress -> problème avec les dates
    Par marghett dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 03h55

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