Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    358

    [WinXP- OpenOffice] foglio elettronico Ordina Dati

    In un foglio elettronico ho dati su 4 colonne: A, B, C, D
    La funzione menù >DATI > ORDINA prevede solo tre campi, per cui la col D non viene ordinata.
    Ho predisposto la macro che segue, ma rimane non trattata sempre la col D.
    Lo script mi pare corretto... dov'è l'errore?
    Potrei anche utilizzare Word, ma credo che anche questo si comporti alla stessa maniera (mi è capitato con formattazione condizionale... 3 sole opzioni, ma con macro con 4 non ho risolto)
    sub ordinaABCD
    'ordina le colonne ABCD in ascendente

    dim document as object
    dim dispatcher as object
    '
    document = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelpe r")

    dim args1(12) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "ByRows"
    args1(0).Value = true
    args1(1).Name = "HasHeader"
    args1(1).Value = false
    args1(2).Name = "CaseSensitive"
    args1(2).Value = false
    args1(3).Name = "IncludeAttribs"
    args1(3).Value = true
    args1(4).Name = "UserDefIndex"
    args1(4).Value = 0

    args1(5).Name = "Col1"
    args1(5).Value = 1
    args1(6).Name = "Ascending1"
    args1(6).Value = true
    args1(7).Name = "Col2"
    args1(7).Value = 2
    args1(8).Name = "Ascending2"
    args1(8).Value = true
    args1(9).Name = "Col3"
    args1(9).Value = 3
    args1(10).Name = "Ascending3"
    args1(10).Value = true
    args1(11).Name = "Col4"
    args1(11).Value = 4
    args1(12).Name = "Ascending4"
    args1(12).Value = true

    dispatcher.executeDispatch(document, ".uno:dataSort", "", 0, args1())


    end sub
    Grazie


    ps: nello script [uno:dataSort] la D di data è maiuscola, l'ho messa minuscola altrimenti il VB di questa pagina mi scrive lo smilie
    So inserire la spina del pc nella presa, so spolverare il pc, sto cercando di capire a cosa serve la tastiera:vado lento ma qualcosa la sto imparando anch'io.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ciao. Per evitare la comparsa delle faccine è sufficiente spuntare la voce "Disabilita le faccine in questo messaggio".

    Per quanto riguarda invece il tuo problema, con excel è sufficiente seguire i consigli riportati qui

    http://support.microsoft.com/?scid=k...8007&x=14&y=10

    per curiosità ho provato su calc ma la procedura lì non funziona (testato su calc 3.0)

    prova comunque per scrupolo. Nel caso non funzioni nemmeno a te si cerca qualcos'altro.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Incuriosito ho fatto una rapida ricerca su google e pare che l'unico modo possibile in openoffice sia quello di esportare il foglio su database e ordinare su di esso.

    Quindi apri Base, Seleziona database, collega a un database esistente, scegli foglio elettronico, da sfoglia selezioni il file di calc e lo importi. A questo punto vai su ricerche, crea ricerca in vista SQL e scrivi

    SELECT * FROM "nome_foglio" ORDER BY "campo_uno", "campo_due", "campo_tre", "campo_quattro".

    Sulla libera interpretazione di base sull'sql con la richiesta degli apici attorno ai nomi dei campi non mi esprimo.

    Una volta ordinati i dati, salvi la ricerca, tasto dx su di essa, copi e incoli su excel.

    Un pò contorto ma funzionante.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    358
    Non funziona

    Originariamente inviato da nicola75ss
    Incuriosito ho fatto una rapida ricerca su google e pare che l'unico modo possibile in openoffice sia quello di esportare il foglio su database e ordinare su di esso.
    ..........
    Un pò contorto ma funzionante.
    L'esportazione funziona

    Originariamente inviato da nicola75ss
    ......
    Una volta ordinati i dati, salvi la ricerca, tasto dx su di essa, copi e incoli su excel....
    Incolla solo il contenuto della prima cella

    Originariamente inviato da nicola75ss
    ......
    SELECT * FROM "nome_foglio" ORDER BY "campo_uno", "campo_due", "campo_tre", "campo_quattro".

    Sulla libera interpretazione di base sull'sql con la richiesta degli apici attorno ai nomi dei campi non mi esprimo.
    E .... ti sei espresso

    Grazie
    So inserire la spina del pc nella presa, so spolverare il pc, sto cercando di capire a cosa serve la tastiera:vado lento ma qualcosa la sto imparando anch'io.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    358
    Risolto in modo più agevole.

    Il problema nello specifico:
    Parecchie colonne, ma le chiavi d'ordine sono 4:
    col A > gruppi da 1 a 7
    col B > settori A,B,C,D
    col C > articolo
    col D > fornitore
    ........ quindi 1A, 1B, etc

    Soluzione
    1- Ordinare per chiavi da A ... a C.
    2- Selezionare le righe per gruppo e settore (pe. A1)
    3- Ordinare per articolo e fornitore [1 chiave, 2 chiave]
    Oks

    Grazie

    ps: sono però curioso di sapere perchè non incolla da ricerca a StarCalc
    So inserire la spina del pc nella presa, so spolverare il pc, sto cercando di capire a cosa serve la tastiera:vado lento ma qualcosa la sto imparando anch'io.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da simieri
    Incolla solo il contenuto della prima cella
    Prima di postare ho provato personalmente su openoffice 3.0.
    Una volta salvato l'sql apri la ricerca e verifica che l'ordinamento sia avvenuto correttamente. A questo punto la chiudi, la copi e su calc la incolli. Verrà copiato tutto, comprese le intestazioni di colonna con sfondo grigio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.