[Résolu] [Calc] Format date inversée entre dialogue et cellule

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
JohnD
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 08 févr. 2023 14:31

[Résolu] [Calc] Format date inversée entre dialogue et cellule

Message par JohnD »

Bonjour,
Dans une boîte de dialogue, dans un champ date formaté dd/mm/yyyy je saisie une date (Manuel ou automatique) je valide la boîte de dialogue récupère la date puis l’affiche dans une cellule d’une feuille , cette cellule est bien formatée dd/mm/yyyy mais cette dernière date (dans la cellule) s’affiche au format Anglo saxon : mm/dd/yyyy.
J’ai à peu près tout essayé rien n’y fait et c’est très problématique car je m’appuie sur ces dates pour des calculs comptables.

Merci de votre aide.
Dernière modification par JohnD le 09 févr. 2023 12:43, modifié 1 fois.
LibreOffice 7.4.2.1
MacOS 13 Ventura
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc] problème date inversée

Message par Bidouille »

Bonjour,

Titre modifié pour plus de clarté : toutes les questions sur ce forum sont forcément des problèmes.

Pour être aidé efficacement par les bénévoles et surtout leur faire gagner du temps, veuillez fournir les éléments suivants :
  1. insérer dans le corps du message le code de la macro exposant le problème
  2. joindre un document explicatif intégrant cette macro avec les données de départ (feuille1) et le résultat à obtenir (feuille2)
  3. fournir un mode pas-à-pas permettant de reproduire ce qui a été fait ou ce que vous cherchez à faire pour arriver au problème
  4. ajouter des copies écran (situation avant / après) si cela permet de mieux comprendre
Merci de publier ces informations à la suite.
JohnD
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 08 févr. 2023 14:31

Re: [Calc] Format date inversée entre dialogue et cellule

Message par JohnD »

Bonjour,

J'ai joins un fichier .ods (TestDate.ods) afin que vous puissiez tester ce que j'ai fait si vous le souhaitez.
Egalement en pièce jointe une image (elle ne semble pas vouloir s'afficher dans la zone texte) du résultat du problème.

Image

Merci à vous
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.4.2.1
MacOS 13 Ventura
JohnD
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 08 févr. 2023 14:31

Re: [Calc] Format date inversée entre dialogue et cellule

Message par JohnD »

Bonjour, Avec l'image annoncée dans le message précédent.
Image.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.4.2.1
MacOS 13 Ventura
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Format date inversée entre dialogue et cellule

Message par Dude »

Salut,

Il manque le point 1 :

Code : Tout sélectionner

Option VBASupport 1
Global oTest As Object

Sub Recup
'	Worksheets("Feuille1").Cells(1,1).NumberFormat = "@"
	Worksheets("Feuille1").Cells(1,1)  = oTest.getControl("DateField1").Text 
	Worksheets("Feuille1").Cells(1,1).NumberFormat = "JJ/MM/YYYY"
End Sub

Sub OpenDlg
	DialogLibraries.LoadLibrary( "Standard" ) 
  	oTest= CreateUnoDialog( DialogLibraries.Standard.test ) 
  	oTest.Execute() 
End Sub
Ton code n'est pas du Basic mais une interprétation de VBA.
C'est la fameuse question qui tue.

Simple exemple permettant de récupérer un contrôle date d'un dialogue dans une cellule :

Code : Tout sélectionner

Sub Dude
	cOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
	DialogLibraries.LoadLibrary( "Standard" ) 
	oDlg = CreateUnodialog(DialogLibraries.Standard.test)
	if oDlg.Execute = cOK then
		sDate = oDlg.getControl("DateField1").Text
		oFeuil = ThisComponent.CurrentController.getActiveSheet()
		oFeuil.getCellByPosition(0,0).String = sDate
	end if
End Sub
.
no_problemo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
JohnD
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 08 févr. 2023 14:31

Re: [Calc] Format date inversée entre dialogue et cellule

Message par JohnD »

Merci Monsieur Dude ça fonctionne très bien comme ça!
Je clos le sujet.
LibreOffice 7.4.2.1
MacOS 13 Ventura