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

OpenOffice & LibreOffice Discussion :

Comment transférer la date sélectionnée dans un contrôle DateField vers une cellule de la feuille de calcul ? [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Sid-Le-Bricoleur
    Homme Profil pro
    En recherche de poste de coordinateur de projets
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : En recherche de poste de coordinateur de projets

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut Comment transférer la date sélectionnée dans un contrôle DateField vers une cellule de la feuille de calcul ?
    Bonjour,

    J'ai une macro qui me permet de saisir de nouvelles données dès la première ligne vide d'une feuille.
    Celle-ci s'accompagne d'une boîte de dialogue contenant un contrôle DateField, et c'est sur ce point où je rencontre un problème :

    Sur la FAQ (Commment transférer la date sélectionnée dans un contrôle DateField vers une cellule de la feuille de calcul ?, le code proposé me renvoie tout simplement l'erreur "Erreur d'exécution BASIC. Variable d'objet non définie." en surlignant la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Value = CDateFromIso(BoiteDeDialogue.getControl("DateField1").Date)
    Le script en question :

    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
    Sub InsertionDate()
    Dim MonDoc As Object
    Dim MaFeuille As Object 
    Dim oNumberFormats As Variant 
    Dim Loc As New com.sun.star.lang.Locale
     
    MaFeuille = MonDoc.Sheets.getByName("FEUILLE") 
     
    oNumberFormats = ThisComponent.NumberFormats
    'Insére la date sélectionnée dans la cellule A2 
      With Feuille.getCellByPosition(0 , 1) 
      'spécifie le format de la cellule 
      .NumberFormat = oNumberFormats.getStandardFormat( com.sun.star.util.NumberFormat.DATE , Loc ) 
      .Value = CDateFromIso(BoiteDeDialogue.getControl("DateField1").Date) 'La variable BoiteDeDialogue est déjà définie (associée) à la boîte de dialogue dans une autre partie du module.
    End With
     
    End Sub
    A noter que les scripts sont quasiment les mêmes, seules quelques variables ont changé par rapport à la FAQ pour que je puisse la tester sur mon module.

    J'en appelle aux modérateurs ou experts (ou @SilkyRoad qui a effectué la dernière mise à jour) pour le coup qui ont rédigé la FAQ, si vous auriez une idée du problème ?

  2. #2
    Membre averti Avatar de Sid-Le-Bricoleur
    Homme Profil pro
    En recherche de poste de coordinateur de projets
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : En recherche de poste de coordinateur de projets

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut Essai avec une autre variante
    J'ai effectué un test avec une autre variante, sans succès, avec la même erreur ("Erreur d'exécution BASIC. Valeur de propriété incorrecte.") et la même ligne surlignée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim oNumberFormats As Variant
    Dim Loc As New com.sun.star.lang.Locale 
    oNumberFormats = ThisComponent.NumberFormats
            
    MaFeuille.getCellByPosition(9, emptyRow + 1).NumberFormat = oNumberFormats.getStandardFormat(com.sun.star.util.NumberFormat.DATE, Loc) 
    MaFeuille.getCellByPosition(9, emptyRow + 1).Value = CDateFromIso(BoiteDeDialogue.getControl("DateField1").Date)
    Pourtant, auparavant, mon Sub fonctionnait sur l'ajout de la date dans la cellule mais pas au bon format. Ça tenait en deux lignes (avec les variables déclarées évidemment) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateAchat_string = BoiteDeDialogue.getControl("DateAchat").Text  
    MaFeuille.getCellByPosition(9, emptyRow + 1).Value = DateAchat_string
    Le résultat de ce dernier bout de code : au début des dates s'insèrent au format DD/MM/YY puis les derniers chiffres YY deviennent incohérents au fur et à mesure (= aux lignes suivantes) avant de faire apparaître une suite entière de chiffres incohérente.

  3. #3
    Membre expérimenté Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 290
    Par défaut
    Un contrôle Date dans un dialogue renvoie un entier long qui contient le format AAAAMMJJ
    Je pense que ce sujet devrait répondre au problème : https://forum.openoffice.org/fr/foru...t%2A+date+calc

  4. #4
    Membre averti Avatar de Sid-Le-Bricoleur
    Homme Profil pro
    En recherche de poste de coordinateur de projets
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : En recherche de poste de coordinateur de projets

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut
    Citation Envoyé par Amélie Ladoque Voir le message
    Un contrôle Date dans un dialogue renvoie un entier long qui contient le format AAAAMMJJ
    Je pense que ce sujet devrait répondre au problème : https://forum.openoffice.org/fr/foru...t%2A+date+calc
    Merci, je vais regarder ça de plus près. En attendant, j'ai envoyé un message au contributeur @SilkyRoad mais pas de réponses pour l'instant.

  5. #5
    Membre averti Avatar de Sid-Le-Bricoleur
    Homme Profil pro
    En recherche de poste de coordinateur de projets
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : En recherche de poste de coordinateur de projets

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut
    Citation Envoyé par Amélie Ladoque Voir le message
    Un contrôle Date dans un dialogue renvoie un entier long qui contient le format AAAAMMJJ
    Je pense que ce sujet devrait répondre au problème : https://forum.openoffice.org/fr/foru...t%2A+date+calc
    J'ai creusé le sujet en adaptant cette bonne proposition et suis parvenu au bout de code suivant qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            'Transfert date d'achat de l'article
            '--Formatage de la cellule où la valeur de la date d'achat sera insérée (variable DateAchat_string qui a été déclarée au-préalable au format DATE puis définie avec la ligne :  DateAchat_string = BoiteDeDialogue.getControl("DateField1").Text).
            Dim CelluleDateAchat As variant
    	CelluleDateAchat = MaFeuille.getCellByPosition(9, emptyRow + 1)
            CelluleDateAchat.Numberformat = 30 '---Le "30" équivaut au format JJ/MM/AAAA mais varie en fonction du terminal et de la version LibreOffice utilisée.
    	CelluleDateAchat.Value = CDate(CelluleDateAchat.String)
    	'--Insertion de la valeur DateAchat_string
    	MaFeuille.getCellByPosition(9, emptyRow + 1).Value = DateAchat_string
    Il me fallait déterminer le .Numberformat adapté pour que ça fonctionne chez moi.

    Merci !

  6. #6
    Membre averti Avatar de Sid-Le-Bricoleur
    Homme Profil pro
    En recherche de poste de coordinateur de projets
    Inscrit en
    Avril 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : En recherche de poste de coordinateur de projets

    Informations forums :
    Inscription : Avril 2021
    Messages : 14
    Par défaut Infos additionnelles
    Pour info, je n'ai toujours pas eu de réponses. J'ai même posté un message pour les modos en attente de réponse.

    Je rajoute quelques liens qui pourraient être utiles pour certains :

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

Discussions similaires

  1. [Toutes versions] Comment afficher la date hégirienne dans access ?
    Par morobaboumar dans le forum Access
    Réponses: 1
    Dernier message: 23/03/2020, 21h01
  2. Réponses: 2
    Dernier message: 14/03/2020, 13h42
  3. Réponses: 0
    Dernier message: 01/08/2011, 12h40
  4. Réponses: 1
    Dernier message: 23/06/2008, 11h26
  5. Comment insérer la date actuelle dans une requête SQL ?
    Par AMINE07 dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/11/2007, 16h47

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