[Résolu][Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

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 !
xeres
Membre lOOyal
Membre lOOyal
Messages : 49
Inscription : 10 avr. 2013 11:02

[Résolu][Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par xeres »

Bonjour à tous et bonne année 2023 !
Je cherche à rendre le remplissage d'une cellule obligatoire avant l'enregistrement du fichier calc si une autre cellule de ma feuille a été remplie.
Je pense qu'il faut créer une macro mais je n'y connais rien.
J'ai bien trouvé un code VBA mais est ce adaptable sur libreoffice :
If Cells(1, 2).Value = "" Then
MsgBox "Cell B1 requires user input", vbInformation, "Avertissement"
Cancel = True
End If

Merci de votre aide !
Dernière modification par micmac le 03 janv. 2023 07:23, modifié 2 fois.
Raison : Ajout de la coche verte
libreoffice 5.1.6.2 sous windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par jeanmi2403 »

Bonjour,
Ça veut dire quoi "obligatoire" ?
L’utilisateur peut toujours se promener un peu partout dans la feuille. Tout au plus pourrait-on lui placer le curseur dans la cellule voulue, mais sans obligation de saisie...
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
xeres
Membre lOOyal
Membre lOOyal
Messages : 49
Inscription : 10 avr. 2013 11:02

Re: [Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par xeres »

Ce que je souhaite,
c'est qu'à la suite du remplissage de cellules de A1 à A3 par exemple (c'est du texte), l'utilisateur ne puisse fermer le fichier ou l'enregistrer que s'il remplit une autre cellule B1 par exemple avec un texte (du genre résumé des 3 autres cellules).
Si la cellule B1 n'est pas remplit : pas de possibilité d'enregistrer le fichier ou de le fermer (?)
Merci pour l'aide.
libreoffice 5.1.6.2 sous windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par jeanmi2403 »

Bonjor,
Il suffit donc d'une boîte de message sur les événements "Enregistrer le document" et "Enregistrer le document sous".
Bonne journée,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
xeres
Membre lOOyal
Membre lOOyal
Messages : 49
Inscription : 10 avr. 2013 11:02

Re: [Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par xeres »

Merci pour l'idée.
Où puis je trouver un tuto pour écrire le code ?
libreoffice 5.1.6.2 sous windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par jeanmi2403 »

Bonsoir,
Voici un exemple de code simple et facilement compréhensible :

Code : Tout sélectionner

Sub CapteEnregistre
oDocument = ThisComponent
oLesFeuilles = oDocument.Sheets
oFeuille = oLesFeuilles.getByName("Feuille1")
oCelluleA2 = oFeuille.getCellRangeByName("A2")
oCelluleC2 = oFeuille.getCellRangeByName("C2")
If oCelluleA2.String <> "" Then ' cellule A2 non vide
	If oCelluleC2.String = "" Then
		MsgBox ("La cellule C2 doit être remplie", MB_ICONEXCLAMATION, "Avertissement")
	End If
End If		
End Sub
A brancher sur les événements évoqués ci-dessus.
Le fait d'afficher le message suffit à interrompre l’enregistrement.
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
xeres
Membre lOOyal
Membre lOOyal
Messages : 49
Inscription : 10 avr. 2013 11:02

Re: [Calc] Rendre une cellule obligatoire en fonction du remplissage d'une autre

Message par xeres »

Merci infiniment
C'est exactement ce que je cherchais à faire ! :super:
Bonne année 2023 !
libreoffice 5.1.6.2 sous windows 10