Message pour compléter cellule avant impression
Résolu
ec163
Messages postés
182
Statut
Membre
-
ec163 Messages postés 182 Statut Membre -
ec163 Messages postés 182 Statut Membre -
Bonjour,
je souhaiterais savoir comment faire dans calc pour empêcher l'impression d'un tableau si une cellule de ce tableau (par ex: C5) n'est pas complétée en indiquant à la personne que cette case est obligatoirement à renseigner pour l'impression (comme un msgbox sur excel). ci joint la macro excel qui serait à traduire en macro calc
Private Sub Workbook_Open()
MsgBox "N'oubliez pas vos noms et prénoms SVP"
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheets("mois").Range("c5").Value = "" Then
Cancel = True
MsgBox "Nom et prénom SVP"
End If
End Sub
Pour info je ne connais pas les macros sur calc.
Par avance merci de votre aide.
ec163
je souhaiterais savoir comment faire dans calc pour empêcher l'impression d'un tableau si une cellule de ce tableau (par ex: C5) n'est pas complétée en indiquant à la personne que cette case est obligatoirement à renseigner pour l'impression (comme un msgbox sur excel). ci joint la macro excel qui serait à traduire en macro calc
Private Sub Workbook_Open()
MsgBox "N'oubliez pas vos noms et prénoms SVP"
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheets("mois").Range("c5").Value = "" Then
Cancel = True
MsgBox "Nom et prénom SVP"
End If
End Sub
Pour info je ne connais pas les macros sur calc.
Par avance merci de votre aide.
ec163
2 réponses
-
Bonjour
une proposition de solution
rentrer la macro suivantesub test_impression rem define variables dim document as object dim oSheet as object dim NomPrenom as string dim NomPrenomSaisie as string ' nom de la feuille oSheet = ThisComponent.sheets.GetByName("feuille1") ' récupération des contenus de cellules NomPrenom=oSheet.getCellRangeByName ("C5").getstring 'tests If NomPrenom="" then goto saisie_nom_prenom else GOTO Fin ' etiquette pour saisie saisie_nom_prenom: NomPrenomSaisie=inputbox("veuillez renseigner Nom et prénom SVP") oSheet.getCellRangeByName("C5").String = NomPrenomSaisie ' etiquette pour fin Fin: rem msgbox("Fin macro") End Sub
Ensuite assigner la macro à l'évènement impression du document
Outils>Personnaliser
Onglet Evènement
-sélectionner : Imprimer le document
-Sous" Assigner" , Bouton "macro"
--sélectionner la macro précédemment enregistrée
--OK
-OK-
Merci, ça fonctionne bien sauf que et oui il y a toujours un "sauf que". Si la personne décide de ne pas mettre son identité et de cliquer sur annuler pour faire disparaître le message, la feuille s'imprime tout de même..... Pourrais tu te pencher sur ce détail, et encore merci ça me dépanne déjà pas mal.
ec163
-
-
re
sub test_impression_boucle rem define variables dim document as object dim oSheet as object dim NomPrenom as string dim NomPrenomSaisie as string ' nom de la feuille oSheet = ThisComponent.sheets.GetByName("feuille1") ' récupération des contenus de cellules verifier: NomPrenom=oSheet.getCellRangeByName ("C5").getstring 'tests If NomPrenom="" then goto saisie_nom_prenom else GOTO Fin ' etiquette pour saisie saisie_nom_prenom: NomPrenomSaisie=inputbox("veuillez renseigner Nom et prénom SVP") oSheet.getCellRangeByName("C5").String = NomPrenomSaisie GOTO verifier ' etiquete pour fin Fin: rem msgbox("Fin macro") End Sub-
Merci beaucoup Yclik, ça fonctionne très bien. Pourrais je abuser en te demandant un complément à cette macro. Je souhaiterais que la personne ne puisse pas enregistrer son document sans avoir renseigner son identité. Il s'agit en fait d'un tableau de pointage pour la grh et certains le renvoient sur papier quand d'autres l'enregistrent et nous le font parvenir par mail. En tout cas merci beaucoup encore pour ton aide précieuse et si tu as le temps de te pencher sur mon autre problème merci encore.
Cdt
ec163 -
-