Inscrire un "Oui" dans la base, si imprimé

Bonjour,
J’ai une feuille generale qui va chercher des informations dans une autre feuille (du meme fichier) via RechercheV par un # de contrat unique.
Une fois que cette “Feuille generale” est imprimée, j’aimerais que dans l’autre feuille la cellule qui dit imprimé soit à oui
EX:

No contrat - Imprimé - Nom - Fonction - Hr debut - Heure fin

123 - Non - Nom du tech - Electricien - 8:00 - 16:00

124 - Non - nom du tech 2 - Machiniste - 7:30 - 17:00

etc…

Dans ma feuille generale j’appelle 123, lorsque imprimé je veux que dans la base des données la case “Non” devienne “Oui”
Je pense que ca prend un peut de programmation Basic mais quoi exactement?

Merci!

Bonjour

Il faut en effet un programme qui :

  • recherche dans la feuille générale le n° de contrat
  • si celui-ci n’est pas vide on continue (sinon on ne fait rien)
  • on recherche dans la feuille Base le contrat correspondant
  • si la recherche est fructueuse on récupère l’adresse de la cellule contenant le n° de contrat
  • on met Oui dans la cellule ayant le numéro de colonne suivant (col. B dans ton exemple)

Ce qui donne quelque chose comme :

Sub OnPrint

dim oSheet as object, oCell as object, oFind as object, oResult as object

oSheet = thiscomponent.sheets.getByName("Feuille1")
oCell = oSheet.getCellRangeByName("C3")
oSheet = thiscomponent.sheets.getByName("Base")

if oCell.string <> "" then
	
	oFind = oSheet.createSearchDescriptor
	
	with oFind
	   .SearchString =  oCell.string
	   .SearchByRow = true
	end with

	oResult = oSheet.findFirst(oFind)

	if not(isnull(oResult)) then		
		with oResult.CellAddress
			oCell = oSheet.getCellByPosition(.Column + 1, .Row)
		end with
		oCell.string = "Oui"
	end if	
end if

End Sub

Pour que le programme soit lancé automatiquement lors de l’impression du classeur faire OutilsPersonnaliser▸onglet Événements▸sélectionner Imprimer le document dans la liste▸cliquer Macro pour sélectionner la macro.

Il faut aussi avoir autorisé l’exécution des macros dans OutilsOptionsLibreOfficeSécuritéSécurité des macros : le niveau Moyen est un bon compromis de sécurité (la confirmation d’autoriser l’exécution est faite à l’ouverture du document)

Voir SurImpression.ods

Cordialement

Wow, Ca l’air si simple pour vous Pierre-Yves

Merci pour la réponse rapide!!
J’essaie et vous reviens s’il y a un problème il y a.
Mais la logique est là.

Je ne trouve pas sur Internet un manuel pour le language Basic pour Libre Office ?!

Merci Encore!

Merci ca fonctionne parfaitement!
Je ne sais pas comment indiqué “résolu”

@Golderock merci pour le “retour”

La plupart des ressources sur la programmation sont réunies dans notre wiki sur cette page.

Pour marquer comme résolu tu peux cliquer sur ✓ à côté de ma réponse.

Cordialement