Date US/FR formulaire

enimsay0 Messages postés 3 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je cherche à empêcher la conversion automatique d'une date issue d'un formulaire VBA en mm/jj/aaaa:
- mon formulaire affiche automatiquement la date du jour (via Date), modifiable.
- je rentre d'autres informations
- la macro copie la date (et les autres informations) dans les cellules dédiées d'un tableur excel

La date affichée dans le formulaire est bien en jj/mm/aaaa, mais lorsque la macro effectue la copie, le format se change automatiquement en mm/jj/aaaa.
La cellule concernée du tableur est bien au format date *jj/mm/aaaa

J'ai bien vu qu'il existait d'autres posts à ce sujet, qui datent de plusieurs années mais n'arrive pas à appliquer les solutions proposées.
J'ai excel VBA 2013

Merci beaucoup pour votre aide.

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Pouvez-vous mettre votre fichier a dispo
    Pour transmettre un fichier,
    Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
    il faut passer par un site de pièce jointe tel que cjoint.com

    Allez sur ce site : https://www.cjoint.com/
    Clic sur parcourir,
    Cherche ton fichier,
    clic sur ouvrir,
    Clic sur "Créer le lien cjoint",
    Copier le lien,
    Revenir ici le coller dans une réponse...

    ou
    'mon partage
    https://mon-partage.fr/
    0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Si tu ne veux pas mettre le fichier, mets au moins le code du formulaire.
    0
  3. enimsay0 Messages postés 3 Statut Membre
     
    Bonjour,
    Le fichier est relativement important et le code aussi, je pensais qu'il y avait une manipulation simple et un peu standard pour palier à ce problème, quelque soit le type de code.

    Voici ci-dessous un extrait du code du formulaire

    Private Sub UserForm_Activate()

    Chemin1 = ThisWorkbook.Path
    Fichier1 = ThisWorkbook.Name
    Onglet0 = "Tableau de bord global"

    With Workbooks(Fichier1).Sheets(Onglet0)

    If testAjout = False Then
    i = ActiveCell.Row
    Me.ticketDemande = .Cells(i, 1).Value
    Me.Contact_date_debut = .Cells(i, 2).Value
    Else
    'Création d'une nouvelle ligne
    Me.ticketDemande = "New"
    Me.Contact_date_debut = Date
    End If
    End With

    End Sub

    Private Sub UserForm_Initialize()

    Chemin1 = ThisWorkbook.Path
    Fichier1 = ThisWorkbook.Name
    Onglet0 = "Tableau de bord global"
    Onglet1 = "Listes"
    Onglet2 = "Données source"

    With Me
    .ticketDemande = "New"
    .Contact_date_debut = Date
    End With
    End Sub


    Merci beaucoup
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Dans cet extrait de code, il n'y a pas d'instruction qui écrit sur la feuille !!!!
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,
        C'est aussi ce que j'ai constate.....
        0
    2. enimsay0 Messages postés 3 Statut Membre
       
      Tout à fait, car c'est au niveau de la définition de la date ("Date" défini je crois la date en américain) que j'ai un problème. En tout cas c'est ce que je suppose.
      L'écriture est une insertion de la valeur dans la cellule, sans définition particulière:


      With Workbooks(Fichier1).Sheets(Onglet0)

      .Cells(n, 2).Value = Contact_date_debut.Value
      end With

      Peut être qu'il est en effet possible de pallier au problème à ce niveau?
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > enimsay0 Messages postés 3 Statut Membre
         
        Re,

        ceci devrait aller:

        With Workbooks(Fichier1).Sheets(Onglet0)
                        .Cells(n, 2).Value = CDate(Contact_date_debut)
        end With
        0