[Résolu] [Calc] Insérer la date du jour

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 !
Toto99
Membre lOOyal
Membre lOOyal
Messages : 25
Inscription : 18 oct. 2022 14:50

[Résolu] [Calc] Insérer la date du jour

Message par Toto99 »

Bonjour à tous,

J'ai créé un fichier grâce à votre aide il y a un peu plus d'1 an. Après plus d'une année d'utilisation, j'aimerais apporter 2 modifications (je vais ouvrir 2 sujets) et j'ai donc encore besoin de vous.

Demande d'origine : viewtopic.php?p=365531#p365531

J'aimerais créer une macro qui lors de la saisie d'une valeur (cellule non vide) en colonne A, la date du jour (sous la forme JJ/MM/AAAA) s'insère automatiquement en colonne C sur la même ligne. Inversement si je supprime mon code en colonne A, la date de cette même ligne se supprime.
Je ne maîtrise pas les macros, je suppose que cette macro doit "tourner en permanence" pour vérifier si des valeurs sont saisies en colonne A. Comment dois-je l'insérer dans mon fichier ?

Je joins le fichier pour test.

D'avance merci pour votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Toto99 le 04 nov. 2023 17:15, modifié 2 fois.
LibreOffice 6.4 (sans possibilité de mise à jour) / Windows 10
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 517
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Insérer la date du jour

Message par Noonours »

Bonjour Toto99, le forum,

Essaye le script ci dessous, à brancher sur l'évènement "contenu modifié" de ta feuille:

Code : Tout sélectionner

Sub InsererDateAuto(oEvt)
	if oEvt.RangeAddress.StartColumn = 0 then 'on teste si colonne A modifiée
		oCA = oEvt.CellAddress
		macell = ThisComponent.sheets(oCA.Sheet).getCellByPosition(2, oCA.row) 'colonne C, même ligne
		macell.Value = date 'now() si on veut l'heure dans le contenu de la cellule
	endif
End Sub
Cordialement,
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 24.2.5.2 et OpenOffice 4.1.15 sous Windows 10
Toto99
Membre lOOyal
Membre lOOyal
Messages : 25
Inscription : 18 oct. 2022 14:50

Re: [Calc] Insérer la date du jour

Message par Toto99 »

Bonjour Noonours,

Merci pour la réponse, mais je ne comprends pas où insérer le script.
LibreOffice 6.4 (sans possibilité de mise à jour) / Windows 10
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 517
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Insérer la date du jour

Message par Noonours »

Bonjour,
Toto99 a écrit :je ne comprends pas où insérer le script.
Enregistre la macro que je t'ai fournie ci-dessus parmi toutes les autres de ton document, reviens sur la feuille et effectue un clic droit sur l'onglet=>"Evènements de la feuille..."=>"Contenu modifié", tu pourras assigner la macro à déclencher.
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 24.2.5.2 et OpenOffice 4.1.15 sous Windows 10
Toto99
Membre lOOyal
Membre lOOyal
Messages : 25
Inscription : 18 oct. 2022 14:50

Re: [Calc] Insérer la date du jour

Message par Toto99 »

OK, merci cela fonctionne.

Néanmoins, si je supprime mon contenu d'une cellule de ma colonne A, la date de cette même ligne ne se supprime pas.
LibreOffice 6.4 (sans possibilité de mise à jour) / Windows 10
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 517
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Insérer la date du jour

Message par Noonours »

Toto99 a écrit :Néanmoins,[...]
Oups, j'aurais du lire l'intégralité de ton premier message :aie:
Essaye:

Code : Tout sélectionner

Sub InsererDateAuto(oEvt)
	if oEvt.RangeAddress.StartColumn = 0 then 'on teste si colonne A modifiée
		oCA = oEvt.CellAddress
		macell = ThisComponent.sheets(oCA.Sheet).getCellByPosition(2, oCA.row)
		if ThisComponent.sheets(oCA.Sheet).getCellByPosition(0, oCA.row).String = "" then
			maCell.String = ""
		else
			macell.Value = date 'now() si on veut l'heure dans le contenu de la cellule
		endif
	endif
End Sub
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 24.2.5.2 et OpenOffice 4.1.15 sous Windows 10
Toto99
Membre lOOyal
Membre lOOyal
Messages : 25
Inscription : 18 oct. 2022 14:50

Re: [Calc] Insérer la date du jour

Message par Toto99 »

Nickel ! :super:

Merci beaucoup !
LibreOffice 6.4 (sans possibilité de mise à jour) / Windows 10