[Résolu][Calc] Récupérer la valeur d'un contrôle Date
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
[Résolu][Calc] Récupérer la valeur d'un contrôle Date
Bonjour à tous,
on ma dit qu'il n'était pas possible de récupérer une date contenu dans une date field pour la mettre dans une cellule, existerai-t-il par hasard une macro qui ferai cela svp?merci bien
on ma dit qu'il n'était pas possible de récupérer une date contenu dans une date field pour la mettre dans une cellule, existerai-t-il par hasard une macro qui ferai cela svp?merci bien
Dernière modification par willydine le 15 mars 2007 11:01, modifié 1 fois.
OO 2.1 sous XP. Pro
-
- Membre cOOnfirmé
- Messages : 244
- Inscription : 17 janv. 2007 19:18
- Localisation : Lille(59) - Lesboeufs (80)
Hello
Effectivement, il faut une macro :
Celle ci place en A7 la date sélectionnée dans le calendrier de la boite de dialogue :
Je te mets un exemple d'appli :
http://user.services.openoffice.org/fr/ ... 050244.ods
Cela répond il à la question ?
AMicalement
Philippe BRONCHART
Effectivement, il faut une macro :
Celle ci place en A7 la date sélectionnée dans le calendrier de la boite de dialogue :
Code : Tout sélectionner
Public LaDate as date
Sub demanderDate()
Dim Dlg As Object, bibli As Object
Dim monDialogue As Object, exitOK As Integer
Dim champDate As Object, dateISO As Long
Dim a As Integer, m As Integer, j As Integer
exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
DialogLibraries.Loadlibrary("Standard")
bibli = DialogLibraries.GetByName("Standard")
monDialogue = bibli.GetByName("Dialogue_Calendrier")
Dlg = CreateUnoDialog(monDialogue)
if Dlg.Execute = exitOK then
champDate = Dlg.getControl("DateField1")
DateISO = champDate.Date
laDate = CDateFromISO(dateISO)
end if
Dlg.Dispose
End Sub
Sub ecriredate
DemanderDate ' on lance le calendrier
MonDoc = ThisComponent 'Sélectionne le document en cours
MaFeuille = MonDoc.CurrentController.ActiveSheet 'Attribue la feuille en cours à la variable
oCurseur = MaFeuille.createCursor ' création du curseur
MaFeuille.getCellByPosition(0,6).value = LaDate '0 = Valeur en A7
end sub
http://user.services.openoffice.org/fr/ ... 050244.ods
Cela répond il à la question ?
AMicalement
Philippe BRONCHART
Amicalement Philippe BRONCHART
Win 10 Libre office 5.0 (perso)
Win 10 Libre office 5.0 (perso)
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
-
- Membre cOOnfirmé
- Messages : 244
- Inscription : 17 janv. 2007 19:18
- Localisation : Lille(59) - Lesboeufs (80)
Bonjour
Si j'ai bien compris la question :
A ma connaissance ce n'est pas réalisable. On ne peut pas lier la valeurd'un DateField à une cellulle directement dans Calc.
AMicalement
Pgilippe BRONCHART
Si j'ai bien compris la question :
A ma connaissance ce n'est pas réalisable. On ne peut pas lier la valeurd'un DateField à une cellulle directement dans Calc.
AMicalement
Pgilippe BRONCHART
Dernière modification par Philippe BRONCHART le 09 mars 2009 10:05, modifié 1 fois.
Amicalement Philippe BRONCHART
Win 10 Libre office 5.0 (perso)
Win 10 Libre office 5.0 (perso)
-
- Grand Maître de l'OOffice
- Messages : 11276
- Inscription : 02 mai 2006 08:42
Bonjour
Tu peux affecter cette macro à l'événement "perte de focus" du champ date.
Tu peux affecter cette macro à l'événement "perte de focus" du champ date.
Code : Tout sélectionner
option explicit
Sub PysChampDate
dim PysFeuille as object, PysCtrl as object
PysFeuille = thiscomponent.sheets.getByName("Feuille1") 'Pointe vers la feuille
PysCtrl = PysFeuille.DrawPage.forms.getByName("Standard").getByName("DateField") 'Pointe vers le contrôle champ Date
PysFeuille.GetCellRangeByName("A1").formulalocal=PysCtrl.Text 'Affecte la valeur à la cellule
End Sub
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
apré avoir exécuter ce code j'ai une erreur sur la ligne en rouge
option explicit
Sub PysChampDate
dim PysFeuille as object, PysCtrl as object
PysFeuille = thiscomponent.sheets.getByName("MMarty")
PysCtrl = PysFeuille.DrawPage.forms.getByName("Standard").getByName("dfDate") PysFeuille.GetCellRangeByName("B9").formulalocal=PysCtrl.Text
End Sub
option explicit
Sub PysChampDate
dim PysFeuille as object, PysCtrl as object
PysFeuille = thiscomponent.sheets.getByName("MMarty")
PysCtrl = PysFeuille.DrawPage.forms.getByName("Standard").getByName("dfDate") PysFeuille.GetCellRangeByName("B9").formulalocal=PysCtrl.Text
End Sub
OO 2.1 sous XP. Pro
-
- Membre hOOnoraire
- Messages : 121
- Inscription : 30 nov. 2006 13:28
- Localisation : Chambéry (73)
hello
ci joint le code d'une macro qui écrit la valeur d'un champ date dans une cellule, déclenchée lorsque le champ de date est modifié:
@+
nicolas.
ci joint le code d'une macro qui écrit la valeur d'un champ date dans une cellule, déclenchée lorsque le champ de date est modifié:
Code : Tout sélectionner
Sub EcrireDate()
Dim monDoc as Object, maFeuille as Object, monForm as Object, maCellule as Object
Dim monChamp as String
monDoc = ThisComponent
maFeuille = monDoc.Sheets.getByName("Donnees)
maCellule = maFeuille.getCellRangeByName("I11")'cellule de destination de la date
monForm = maFeuille.DrawPage.Forms.getByName("Form1")
monChamp = monForm.getByName("DateField").text 'Champ date placé sur la feuille calc
If isnull(monChamp) Then
maCellule.setString("Problème, aucune date choisie !")
Else
maCellule.setValue(CDate(monChamp))
End If
End Sub
nicolas.
OoO 3.0.1 XP home SP3
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
-
- Grand Maître de l'OOffice
- Messages : 11276
- Inscription : 02 mai 2006 08:42
Juste un complément d'information : utiliser la propriété formulalocal permet d'affecter directement une date au format local ("français" en l'occurrence) sans devoir faire une conversion.Nicolas a écrit :Code : Tout sélectionner
maCellule.setValue(CDate(monChamp))
Cf. exemple tiré du code de mon post précédent :
Code : Tout sélectionner
PysFeuille.GetCellRangeByName("A1").formulalocal=PysCtrl.Text
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
voila mon appli si quelqu'un peu y jetter un coup d'oeil la macro se trouve sur la feuille CtrlDateField, merci
http://user.services.openoffice.org/fr/ ... 032352.ods
http://user.services.openoffice.org/fr/ ... 032352.ods
OO 2.1 sous XP. Pro
-
- Membre hOOnoraire
- Messages : 115
- Inscription : 12 mars 2007 13:32
-
- Fraîchement OOthentifié
- Messages : 3
- Inscription : 07 juil. 2017 13:31
Re: [Résolu] Récupérer la valeur d'un contrôle Date
Bonjour Willydine,
Je déterre un peu ce sujet, mais je n'arrive pas a alimenter une cellule avec une date choisie dans un DateField.
Du coup j'ai testé ton fichier, et je n'arrive pas à comprendre pourquoi ça fonctionne dans certaines feuilles et pas d'autres.
Peux-tu me donner des éclaircissements, ça m'aiderai peut-être à comprendre pourquoi ça ne fonctionne pas chez moi..
Merci infiniment,
Adrien
Je déterre un peu ce sujet, mais je n'arrive pas a alimenter une cellule avec une date choisie dans un DateField.
Du coup j'ai testé ton fichier, et je n'arrive pas à comprendre pourquoi ça fonctionne dans certaines feuilles et pas d'autres.
Peux-tu me donner des éclaircissements, ça m'aiderai peut-être à comprendre pourquoi ça ne fonctionne pas chez moi..
Merci infiniment,
Adrien
OpenOffice 4.1 sous Windows 7 x64
-
- RespOOnsable forum
- Messages : 12457
- Inscription : 08 nov. 2005 16:23
- Localisation : Caen, France
Re: [Résolu] Récupérer la valeur d'un contrôle Date
Ami fossoyeur
Vous pensez bien que depuis 2007, les choses ont bien changés.
Lisez ceci : déterrage = verrouillage.
Vous pensez bien que depuis 2007, les choses ont bien changés.