[Résolu] [Calc] insérer une date

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 !

[Résolu] [Calc] insérer une date

Messagepar foay » 30 Mai 2017 18:40


La modération a écrit:Pour la bonne tenue de ce forum, veillez à respecter la syntaxe des balises (première lettre en majuscule puis le reste en minuscules, le tout entre crochets). [Calc] et non [calc]. Nous l'avons fait pour vous.

bonjour,

il a quelque temps j'avais posté un message car je voulais entrer automatiquement une date quand une autre cellule était remplie
(http://ooo-forums.apache.org/fr/forum/v ... 3ad756b64a)
je me retrouve avec le même problème aujourd'hui, et alors que j'avais compris la dernière fois (et que à ça marche toujours sur mon fichier)
je ne comprends plus du tout comment faire, ni comment intégrer la macro a un nouveau classeur, ni comment la déclenché (et voir comment l'adapté)

alors je sais bien que ce forum n'est pas une salle de cours, mais un peu d'aide me ferait du bine et m'éviterais de tourner en bourrique :marto:

accessoirement, il y a t'il un bouquin qui traite des macro sur calc, ou sur libre office ?


merci de votre aide

en PJ un petit tableau "fictif" le but entré le nom des membres d'une association, et que leur date d'inscriptions (la date fixe du jour) s'inscrive automatiquement.
Pièces jointes
liste membres test.ods
(8.03 Kio) Téléchargé 36 fois
Dernière édition par micmac le 31 Mai 2017 00:17, édité 3 fois.
Raison: [Résolu] remplace [RESOLU]
libre office 5.3.3
W10
foay
Membre lOOyal
Membre lOOyal
 
Message(s) : 30
Inscrit le : 24 Mars 2014 23:06
Localisation : essone, IdF, France, Europe, terre, ...

Re: [calc] macro date

Messagepar Churay » 30 Mai 2017 19:23

Bonsoir,

Si un nom est saisi en colonne A, la date du jour est mise en colonne C (de la même ligne)

liste membres test.ods
(17.57 Kio) Téléchargé 54 fois
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
 
Message(s) : 2643
Inscrit le : 30 Avr 2009 05:54
Localisation : CATALUNYA

Re: [calc] macro date

Messagepar ThierryT » 30 Mai 2017 19:34

Fichier modifié en suivant les indications de Piaf dans le lien fourni (insertion de la macro dans le fichier, modification de la macro pour traiter la colonne C seulement et affection de la macro à l'évènement feuille "Contenu modifié).
Pour que la macro fonctionne, il faut saisir quelque chose dans la cellule concernée.

Pour information, en Basic, les numéros de colonnes commence à zéro. La colonne A a donc la valeur 0, colonne B valeur 1 et colonne C valeur 2.
Pièces jointes
liste membres test.ods
(13.05 Kio) Téléchargé 47 fois
LibreOffice 6.0.0.3 x64 (02/02/2018) / AOO 4.1.5 (x86) sous Windows 8.1 (x64)
Java 8.x (x64 et x86), Firefox, Thunderbird,....

“Celui qui aime à apprendre est bien près du savoir.” (Confusius)
Comment baliser Résolu
Avatar de l’utilisateur
ThierryT
Membre enthOOusiaste
Membre enthOOusiaste
 
Message(s) : 463
Inscrit le : 10 Nov 2012 18:05

Re: [Calc] insérer une date

Messagepar martinbrait » 30 Mai 2017 20:54

Bonjour Foay,

Cette version reprend le meilleur de Churay et de ThierryT :

- Date à la place de Date et Heure ( version de Churay)
- Détection de la modification en colonne A, comme demandé (inactif chez ThierryT)

- ajoute un comportement d'effacement de la ligne entière, lors de l'appui sur la touche [suppr],
sur la sélection du nom, en colonne A.

Code : Tout sélectionner   AgrandirRéduire
'Option Explicit

Sub WriteModificationDate(evt)   
Dim column As Integer, row As Integer, cell As Object
'Seulement si une seule cellule est modifiée
   If evt.SupportsService("com.sun.star.sheet.SheetCell") Then
   'si le curseur se situe dans la colonne A
      If evt.cellAddress.column = 0 Then

         row = evt.cellAddress.row 'même ligne que la cellule modifiée
         'on trouve la cellule à remplir (même feuille)
         cellColB = evt.spreadSheet.GetCellByPosition(1,row)
         cellColC = evt.spreadSheet.GetCellByPosition(2,row)
         'si on inscrit une valeur dans la colonne A     
         If evt.String <> "" Then
            'on y met la date du jour, en colonne C
           
               'avec l'événement "modifié", la sélection courante se réduit toujours à une seule cellule
               'à condition toutefois qu'une date ne soit pas déjà inscrite (pour éviter de redater lorsque l'on parcourt les enregistrements en colonne A
               If Len(cellColC.string)=0 Then
                  'MsgBox "cellule modifiee !"
                  cellColC.value = Date
                  'j'ai choisi d'écrire la date plutôt que l'heure, ça me semble plus juste.
                  End If
                  Else
               'sinon on efface, en partant du principe qu'on a effacé l'enregistrement dans la colonne A
               cellColB.String = ""
               cellColC.String = ""   
               End If
      End If
      'sinon on ne fait rien
   End If
End Sub

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TUTOS
https://www.openoffice.org/fr/Documenta ... ctions.pdf
https://wiki.documentfoundation.org/ima ... ctions.pdf
https://www.openoffice.org/fr/Documenta ... s_calc.pdf
Pièces jointes
liste membres testV2.ods
(20.45 Kio) Téléchargé 49 fois
Dernière édition par micmac le 30 Mai 2017 21:17, édité 2 fois.
Raison: Liens externes neutralisés
LibreOffice version 5.1.6.2
Windows 10
+
LibreOffice version 4.3.6.2.0
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
martinbrait
PassiOOnné
PassiOOnné
 
Message(s) : 729
Inscrit le : 09 Avr 2013 08:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc] insérer une date

Messagepar foay » 31 Mai 2017 00:13

grand merci a tous
vous êtes même allez plus loin que ce que je demandais (effacement de la ligne par exemple) :super:

ce que j'arrivais pas a faire c'était de "copier" la macro (a l'aide de outil->macro->gérer->...)
mais voila j'ai a nouveaux compris, je vais essayer de me le rentrer dans la tète une fois pour toute ! :marto:

j'aimerais bien apprendre a créer moi même des macro, mais c'est une autre histoire, et un autre post !
libre office 5.3.3
W10
foay
Membre lOOyal
Membre lOOyal
 
Message(s) : 30
Inscrit le : 24 Mars 2014 23:06
Localisation : essone, IdF, France, Europe, terre, ...

Re: [Résolu] [Calc] insérer une date

Messagepar janothd » 27 Avr 2018 14:29

Bonjour je suis un nouvel utilisateur d'Open Office. Quand j'utilisais Excel, lorsque je mettais le jour et le mois (31.04 par exemple), l'année encours apparaissait automatiquement. Comment faire Avec Open Office?
Un grand merci pour votre réponse et bonne journée
Openoffice 4.1.5 windows 10
janothd
Fraîchement OOthentifié
 
Message(s) : 1
Inscrit le : 27 Avr 2018 14:15

Re: [Résolu] [Calc] insérer une date

Messagepar Bidouille » 27 Avr 2018 14:44

Bonjour,

Nous nous devons de verrouiller ce fil de discussion. Nous vous rappelons les règles de ce forum et notamment la n° 7
Un sujet = le problème d'une seule personne

Comme vous avez pu le lire, ce sujet est désormais résolu. Si vous avez également ce problème, c'est que ce dernier est différent. Votre configuration n'est pas la même que celle de l'auteur de ce fil qui est sous LibreOffice.

Dans ce cas et pour des raisons de lisibilité sur ce forum, nous vous demandons de créer une nouvelle question en rappelant que vous avez le même problème que dans ce fil.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 9664
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 6 invité(s)