Date US/FR formulaire

enimsay0 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 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

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Si tu ne veux pas mettre le fichier, mets au moins le code du formulaire.
0
enimsay0 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Dans cet extrait de code, il n'y a pas d'instruction qui écrit sur la feuille !!!!
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
C'est aussi ce que j'ai constate.....
0
enimsay0 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > enimsay0 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

ceci devrait aller:

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