Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 1 voto(i) - 5 media
  • 1
  • 2
  • 3
  • 4
  • 5
[RISOLTO] Selezionare più tabelle in write
#1
Buongiorno,
ho bisogno ancora del vostro aiuto!
Il mio problema è questo; ho un file di testo scritto in write che contiene al suo interno numerose tabelle. Avrei la necessità di selezionare contemporaneamente le tabelle da pag. X a pag. y per poi effettuare su di esse una serie di formattazioni comuni (es. cambiare il colore di sfondo, applicare un bordo, ecc..).
Qualcuno di voi è in grado di creare una macro che mi permetta di eseguire quanto sopra scritto?
Grazie e buona giornata.
Cita messaggio
Grazie da:
#2
Avevi già postto una discussione simile su forum1
http://www.istitutomajorana.it/forum/Thr...di-tabelle
questa macro per la selezione multipla delle tabelle non ti piace più? Undecided
Cita messaggio
Grazie da:
#3
Tutt'altro, quella va benissimo! e la uso anche spesso, grazie.
Solo che quella macro mi seleziona le tabelle e automaticamente applica a tutte un bordo.
Quello che mi servirebbe ora è una macro che si limiti a selezionare un gruppo di tabelle contenute in un determinato intervallo di pagine. Fatto questo, la mia intenzione, se possibile, è quella di cliccare sul tasto "Proprietà tabelle" e da li cambiare a tutte le tabelle selezionate il tipo di formattazione che, di volta in volta, mi serve. Una volta potrebbe servirmi di cambiare a tutte lo sfondo, un'altra volta il contorno o un'altra ancora entrambe le cose assieme e così via. Sto chiedendo troppo? io purtroppo non ho nessuna conoscenza di macro e di programmazione e di conseguenza non conosco potenzialità e limiti di questi strumenti.
Ancora grazie e buona serata.
Cita messaggio
Grazie da:
#4
Prova a fare questa domanda su forum openoffice su sezione dedicata a writer magari qualcuno può darti una soluzione
https://forum.openoffice.org/it/forum/vi...741250116e
Ho già trovato una macro che seleziona tutte le tabelle applicando un bordo con difficoltà, figurarsi per selezionare alcune tabelle in un intervallo di pagine....in bocca al lupo.
Cita messaggio
Grazie da:
#5
Ti ringrazio molto per l'aiuto e per il suggerimento. Proverò!
Ciao, buona giornata. Smile
Cita messaggio
Grazie da:
#6

.odt   00-PSC-ROCCA DI ROMANENGO E CASCINETTA.odt (Dimensione: 60,14 KB / Download: 3) Su consiglio di  d4rkheart ho inoltrato il quesito anche al forunm
https://forum.openoffice.org/it/forum/vi...f=8&t=6557
e li, con mia grande gioia, unlucky83 ha risolto il mio problema.
Ora, dopo aver chiesto autorizzazione, posto anche a voi la soluzione.
Codice:
sub test
dim pagI,pagF
oFrame = ThisComponent.CurrentController.Frame
oDispHelper = createUnoService("com.sun.star.frame.DispatchHelper")

oTables=ThisComponent.getTextTables()
nomeTabRif=inputbox("scrivi nome tabella riferimento")
oTabRif=oTables.getbyName(nomeTabRif)


ThisComponent.getCurrentController().select(oTabRif)
oDispHelper.executeDispatch(oFrame, ".uno:SelectTable", "", 0, Array())
oSel=thiscomponent.CurrentSelection
NomeRangeRif=oSel.RangeName

pagI=inputbox("Seleziona pagina di inizio")
pagF=inputbox("Seleziona pagina di fine")

For i = 1 To oTables.getCount() - 1
    oTable = oTables.getByIndex(i)
    ThisComponent.getCurrentController().select(oTable)
   view_cursor=ThisComponent.CurrentController.ViewCursor
   inpagina=view_cursor.getPage()  
   if inpagina>=cint(pagI) and inpagina<=cint(pagF) then
      oDispHelper.executeDispatch(oFrame, ".uno:SelectTable", "", 0, Array())
      oSel=thiscomponent.CurrentSelection
      NomeRange=oSel.RangeName

      oTable.setpropertyvalue("TableBorder",oTabRif.getpropertyvalue("TableBorder"))
      oTable.setpropertyvalue("BackColor",oTabRif.getpropertyvalue("BackColor"))
      if NomeRange=NomeRangeRif and oTabRif.Name<>oTable.Name then
         for k=0 to ubound(oTabRif.DataArray,1)
            for kk=0 to ubound(oTabRif.DataArray(k),1)
               oTable.getCellByPosition(kk,k).setpropertyvalue("BackColor",oTabRif.getCellByPosition(kk,k).getpropertyvalue("BackColor"))
            next
         next
      end if
      end if
next
ThisComponent.getCurrentController().select(oTabRif)
msgbox "Fine"
end sub
Cita messaggio
Grazie da: esabatad , eu66 , d4rkheart
#7
Grazie a te per averci messi al corrente della soluzione ed all'autore della macro unlucky83.
Ps: L'amministratore Antonio Cantaro è pure moderatore su forum openoffice.
Cita messaggio
Grazie da:
#8
Buongiorno a tutti,
unlucky83 ha ulteriormente migliorato la precedente macro. Ora è praticamente possibile cambiare tutte le caratteristiche delle tabelle contemporaneamente. Di seguito allego il nuovo codice.
Ciao.

Codice:
   sub test
   dim pagI,pagF
   oFrame = ThisComponent.CurrentController.Frame
   oDispHelper = createUnoService("com.sun.star.frame.DispatchHelper")

   oTables=ThisComponent.getTextTables()
   nomeTabRif=inputbox("scrivi nome tabella riferimento")
   oTabRif=oTables.getbyName(nomeTabRif)
   ProprietaTabRif=oTabRif.PropertySetInfo.Properties

   ThisComponent.getCurrentController().select(oTabRif)
   oDispHelper.executeDispatch(oFrame, ".uno:SelectTable", "", 0, Array())
   oSel=thiscomponent.CurrentSelection
   NomeRangeRif=oSel.RangeName

   pagI=inputbox("Seleziona pagina di inizio")
   pagF=inputbox("Seleziona pagina di fine")
   For i = 0 To oTables.getCount() - 1
       oTable = oTables.getByIndex(i)
       ThisComponent.getCurrentController().select(oTable)
      view_cursor=ThisComponent.CurrentController.ViewCursor
      inpagina=view_cursor.getPage()  

      if inpagina>=cint(pagI) and inpagina<=cint(pagF) then
         oDispHelper.executeDispatch(oFrame, ".uno:SelectTable", "", 0, Array())
         oSel=thiscomponent.CurrentSelection
         NomeRange=oSel.RangeName
         if NomeRange=NomeRangeRif and oTabRif.Name<>oTable.Name then
            ProprietaTab=oTable.PropertySetInfo.Properties
            if ubound(ProprietaTab)=ubound(ProprietaTabRif) then
               for k=1 to ubound(ProprietaTab)
                  Cosa=ProprietaTab(k).Name
                  Pmodello=oTabRif.getpropertyvalue(Cosa)
                  on Error resume next
                  oTable.setpropertyvalue(Cosa,Pmodello)
               next
            end if
            for k=0 to ubound(oTabRif.DataArray,1)
               for kk=0 to ubound(oTabRif.DataArray(k),1)
                  oTable.getCellByPosition(kk,k).setpropertyvalue("BackColor",oTabRif.getCellByPosition(kk,k).getpropertyvalue("BackColor"))
               next
            next
         end if
         end if
   next
   ThisComponent.getCurrentController().select(oTabRif)
   msgbox "Fine"
   end sub
Cita messaggio
Grazie da: d4rkheart


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)