Tableur

ec163 Messages postés 182 Statut Membre -  
yclik Messages postés 3873 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je souhaiterai dans un tableau calc servant de maquette d'absence pour des salariés, que lorsqu'ils ne saisissient pas certaines informations, ils ne puissent pas imprimer leur bulletin et qu'un message aparaîsse à l'écran (comme les msgbox d'excel) leur expliquant ce qu'il faut faire pour débloquer la situation. Par avance merci de vos réponses.
Concrètement s'ils ne sélectionne pas :
* leur service dans la cellule B3, un message apparaît "veuillez renseigner le service SVP"
* leur nom et prénom dans la cellule B4, un message apparaît "veuillez renseigner vos noms et prénoms SVP"
* leur motif d'absence en A8, un message apparaît "veuillez renseigner le motif SVP"
* leur date d'absence en B8, un message apparaît "veuillez renseigner les dates de début et de fin SVP".

Merci de votre aide

ec163

1 réponse

  1. yclik Messages postés 3873 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonjour
    Une proposition de solution en mettant un bouton "Imprimer" sur la feuille déclenchant la macro ci dessous

    sub test_feuille
    rem ----------------------------------------------------------------------
    rem define variables
    dim document   as object
    dim oSheet as object 
    dim monService as string
    dim monNomPrenom as string
    dim monMotifAbsence as string
    dim  maDateAbsence as date
      ' nom de la feuille
     oSheet = ThisComponent.sheets.GetByName("feuille1") 
    
      ' récupération des contenus de cellules
      monService= oSheet.getCellRangeByName ("B3").getstring 
      monNomPrenom=oSheet.getCellRangeByName ("B4").getstring
      monMotifAbsence=oSheet.getCellRangeByName ("A8").getstring
      maDateAbsence=oSheet.getCellRangeByName ("B8").getvalue
       
      'tests 
      
      If monService="" then msgbox("veuillez renseigner le service SVP" )
      If monService="" then  goto Fin
      
      If monNomPrenom="" then msgbox("veuillez renseigner Nom et prénom SVP" )
      If monNomPrenom="" then  goto Fin 
      
      
      If  monMotifAbsence="" then msgbox("veuillez renseigner le motif d'absence SVP" )
      If  monMotifAbsence="" then  goto Fin 
      
      If  maDateAbsence=0 then msgbox("veuillez renseigner la date d'absence SVP" )
      If  maDateAbsence=0 then  goto Fin 
      
    
     impression:
     msgbox("on imprime")
    rem  thisComponent.print(array())
    
    Fin: 
    msgbox("Fin macro")
    
    End Sub


    Si concluant :
    sous l'étiquette impression:
    -mettre rem devant msgbox et supprimer le rem en dessous
    sous l'étiquette Fin:
    -mettre rem devant msgbox
    0
    1. ec163 Messages postés 182 Statut Membre 32
       
      Merci, mais déjà que je ne suis pas super doué en VBA mais alors sur Calc c'est carrément le néant, malheureusment je n'ai pas le choix.
      Je suppose que ta macro fonctionne mais je ne sais absolument pas où je dois la coller et renommer certaines données, merci
      0
    2. ec163 Messages postés 182 Statut Membre 32
       
      Rien à faireje n'y arrive pas et je ne comprend pas!
      0
    3. ec163 Messages postés 182 Statut Membre 32
       
      Merci mais c'est pas mieux en plus je voudrais éviter les boutons de commande, je veux faire au plus simple, juste qqs messagesbox en cas d'oubli de saisie c'est tout. J'ai recopié ta macro mais je ne sais pas si je remplace bien tous les termes à modifier, puis je t'envoyer une copie de ma maquette, stp?
      0