Page 1 sur 1

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

MessagePublié: 30 Mai 2017 18:40
par foay

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.

Re: [calc] macro date

MessagePublié: 30 Mai 2017 19:23
par Churay
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é 99 fois

Re: [calc] macro date

MessagePublié: 30 Mai 2017 19:34
par ThierryT
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.

Re: [Calc] insérer une date

MessagePublié: 30 Mai 2017 20:54
par martinbrait
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

Re: [Calc] insérer une date

MessagePublié: 31 Mai 2017 00:13
par foay
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 !

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

MessagePublié: 27 Avr 2018 14:29
par janothd
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

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

MessagePublié: 27 Avr 2018 14:44
par Bidouille
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.