Migration d'un tableur OpenOffice à LibreOffice

Bonjour, je suis en train de migrer de OpenOffice à LibreOffice. Je suis sous Windows 11 famille 24H2, OpenOffice 4.1.15 et LibreOffice 25.2. J’avais créer un tableur pour gérer mes comptes pour lequel la migration me pose problèmes.
Après avoir eu un problème de fichier corrompu que j’ ai résolu apparemment en supprimant tous les modules et boites de dialogues et en les recréant ensuite.
Maintenant je n’arrive pas à résoudre une erreur d’exécution BASIC.
Par bouton, j’appelle une macro qui m’affiche une boite de dialogue. Dans celle-ci j’ai un champ Datefield que je prés rempli.
Extrait du code :slight_smile: REM ***** BASIC Libre 25 06 2025 *****
REM ***** BASIC MAJ 15/08/2019 *****
REM **** Modifié le 01/11/2019 pour inclure cntl CAC tiers à blanc *****
REM **** verif champs Compte, Tiers, Périodicité non vide *****
Global Dlg As Object
’ -------------------------------------------------------------------------------------------------------------------------------------
’ AFFICHAGE DU FORMULAIRE
’ -------------------------------------------------------------------------------------------------------------------------------------
Sub AfficheFormulaireNewEcheance()
…….

’ AFFICHAGE DE LA DATE DU JOUR PAR DEFAUT DANS “DateField1”
Dlg.getControl(“DateField1”).Date = CDateToISO(Date)
……….
J’ai alors le message : Erreur d’exécution BASIC Variable d’objet non définie et j’ai Dlg.getControl(“DateField1”).Date=CDateToIso(Date) surligné dans le module.
Je n’ai jamais eu ce problème sous OpenOffice . Y-a-t-il un problème de codage ou de manipulation de ma part? Pouvez-vous m’aider?
Excusez moi pour la longueur de ma question mais j’ai essayé d’exposer clairement le cadre dans lequel j’ai ce problème .
Merci pour votre patience

Bonjour JPN et bienvenue,

sous LibreOffice, les contrôles DateField sont passés du type Date (Long) à une structure de type UNODate

Edit: ceci depuis la version 4.1.1 (cf. Notes de Version 4.1 - The Document Foundation Wiki)

com.sun.star.awt.XDateField les paramètres de la méthode et les valeurs de retour changés de long en com.sun.star.util.Date

Pour t’en rendre compte, écris ceci :

Dim MyVar As Object
Dim MyDate As Variant
MyVar = Dlg.getControl(“DateField1”)
MyDate = MyVar.Date

exécute pas à pas et examine le contenu de MyDate.

Donc, change la ligne :

en
Dlg.getControl("DateField1").Date = CDateToUnoDateTime(Date)

Pour info il existe la fonction réciproque : Date = CDateFromUnoDateTime(DateUNO)

Merci jfn, je n’ai plus de message d’erreur à l’exécution du module. Mais il me reste un problème lors de l’affichage de la boite de dialogue quand je veux modifier la date du champ Dateafield. Je vais regarder un peu plus mais mes vieux neurones ne sont plus très alertes. En tout cas merci de ta réponse.