[Risolto] Copiare colonne excel in file calc

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

[Risolto] Copiare colonne excel in file calc

Messaggio da Gennaro »

ho la necessita di copiare delle colonne di un file excel e incollarle in un file di calc. premetto che adesso mi sto avvicinando a Open quindi conoscenza ZERO mentre ho qualche conoscenza (piccola) di excel e VBA. Ho preparato una macro scopiazzando per la rete e funziona perfettamente se i due file sono excel. Ho copiato la macro in calc ma non viene riconosciuta e quindi non funziona.. Brevemente devo copiare da "aggiornamentoDB.xlsb le 4 colonne (piu' di 3000 righe ed andarle ad incollare in Test.ods in modo da aggiornare il database da 1500 righe a 3540 righe. Da notare che il database non supererà mai le 5000 righe. Ringrazio chi mi puo aiutare anche riscrivendo tutta la macro. Scusate se ho sbagliato qualcosa ma è la prima volta che scrivo in un forum. Un grazie particolare a Charlie che mi ha indicato come fare per interrogare il forum. Di seguito i due allegati aggiornamentoDB.xlsx (file sorgente) e Test.ods (file destinazione). Grazie per l'aiuto
Ultima modifica di Gennaro il martedì 23 aprile 2019, 21:39, modificato 2 volte in totale.
OpenOffice 4.1.5 su win7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Copiare colonne excel in file calc

Messaggio da charlie »

Ciao e benvenuto/a sul forum.
Se intanto ti vuoi presentare puoi farlo in questa sezione -> viewforum.php?f=16
Per una panoramica delle regole del forum puoi consultare il Manuale di sopravvivenza -> http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2

Buon proseguimento.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

Non capisco il problema, da calc puoi aprire il file excel quindi non ha bisogno di copiare nulla, inoltre non hai allegato il file ods e neppure la macro
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

grazie per la pronta risposta. mi scuso per gli allegati ma in anteprima avevo visto che erano stati messi. Non sono molto pratico quindi un po' di pazienza. Appena posso vedo il modo di inserire i due allegati. Brevemente mi servirebbe una macro che da un foglio calc mediante un tasto mi copia le celle di in foglio excel e le incolla nel foglio calc. Grazie
OpenOffice 4.1.5 su win7
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

scusa Patel ora vedo i due file nella mia richiesta. vedi se ho fatto bene.In .ods c'è la macro copia e incolla che utilizzo in excel e che funziona perfettamente. Grazie
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

ci sono chiamate a sub non esistenti proteggi e sproteggi, commentate queste ed aggiunto la riga
CompatibilityMode(True)
la macro funziona su libre office

Codice: Seleziona tutto

Option VBASupport 1

Public Sub copiaincolla()
CompatibilityMode(True) '<<<<<<<<<<<<
   'dichiaro le variabili
    Dim wk1 As Workbook
    Dim wk2 As Workbook
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Dim rng As Range

'gestione errori 
On Error GoTo RigaErrore

    Application.ScreenUpdating = False
    
    MsgBox "ATTENZIONE - ATTENZIONE - ATTENZIONE!!!!" _
& Chr(10) _
& Chr(10) _
& "E' stato scaricato il file aggiornamentoDB" _
& Chr(10) _
& Chr(10) _
& "dal sito e messo nella cartella o dove è posizionato" _
& Chr(10) _
& Chr(10) _
& "il log per avere tutto aggiornato?" _
& Chr(10) _
& Chr(10) _
& Chr(10) _
& "Se non è stato fatto confermate la finestra che" _
& Chr(10) _
& Chr(10) _
& " vi esce e provvedete immediatamente!!"


'sproteggi '<<<<<<<<<<<<<<<<<<<<<

    'metto i riferimenti ai files
    
    'Log di stazione
    Set wk1 = ThisWorkbook
    
    'metto il riferimento al foglio
    Set sh1 = wk1.Worksheets("database")
    
     With sh1
        'pulisco il database del log
       .Range("a2:d5000").Clear
     End With
    
        
    'file aggiornato esterno al log che si è scaricato
    'dal sito e va messo nella stessa cartella o posizione del log
    Set wk2 = Workbooks.Open(wk1.Path & "/" & "aggiornamentoDB.xlsx")
    
    
    
    'file aggiornato esterno al log che si è scaricato
    'dal sito e va messo nel disco C
    'Set wk2 = Workbooks.Open("C:\aggiornamentoDB.xlsx")
    
    'metto il riferimento al fogli
        Set sh2 = wk2.Worksheets("aggiornamentoDB")
             
    With sh2
        'copio i dati da un file all'altro
        .Range("a2:d5000").Copy Destination:=sh1.Range("a2")
        '.Range("G1").Copy Destination:=sh1.Range("G1")
    End With
 
 'salvo le modifiche al file FileDue.xls
    wk2.Save
    'chiudo il file FileDue.xls
    wk2.Close
    
    Application.ScreenUpdating = True

'riga sempre eseguita
RigaChiusura:
    'Set a Nothing delle variabili oggetto
    Set rng = Nothing
    Set sh2 = Nothing
    Set sh1 = Nothing
    Set wk1 = Nothing
    Set wk2 = Nothing
    Exit Sub

'in caso di errore
RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura

'proteggi '<<<<<<<<<<<

End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

patel ha scritto:Non capisco il problema, da calc puoi aprire il file excel quindi non ha bisogno di copiare nulla, .....
Non mi hai risposto a questo
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

Ciao Patel, ti ringrazio per la pronta risposta. so che calc mi apre il file excel infatti il file test.ods è stato caricato su calc da un file excel. Questo file è la parte di macro che non funziona. Il problema è questo: il database nel file TEST. al momento ho 1500 articoli. Controllando il sito della società trovo il file che mi dice aggiornamentoDB (3540 articoli)vale a dire che il database che ho in test è obsoleto e devo aggiornarlo scaricandolo dal sito. una volta scaricato dal sito e posizionato nella stessa cartella dove si trova test (in excel primo worbook.open altrimenti lo posiziono in C:|) in modo da poterlo trovare.
Bene a questo punto cancello il database obsoleto in test, copio il nuovo database da aggiornamento e le vado a incollare nel database di test. in excel la procedure è perfetta ma la macro di cui sopra non funziona in open. si apre il file aggiornamentoDB mi sembra che cancella le celle in TEST ma non copia il nuovo database.sperando di essere stato abbastanza chiero ti chiedo aiuto visto che hai risolto sempre tutti i problemi del forum
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

Continu a non capire a cosa serve copiare i dati nuovi se li hai già nel database scaricato. Comunque prova la macro modificata con LibreOffice
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

Ciao Patel, ti ringrazio per il tempo che mi dedichi. Mi rendo conto che non è chiaro il perchè del movimento di questo database anche perchè il file test fa parte di un file piu' complesso con 6 fogli e 24 macro le quali funzionano perfettamente se uso solo Excel. Brevemente si tratta di un registro LOG nel quale inserendo un nome nella colonna call in base al modo inseito nalla relativa colonna mi da un punteggio. Quindi l'aggiornamentoDb deve andare nel file principale onde poi poter fare la ricerca e dare il relativo punteggio. Penso che allegando il file base completo riesci a focalizzare il proplema. Ho usato la tua correzione ma non funziona poichè cancella tutto tutto senza incollare nulla. Non ho trovato il modo di inserire l'allegati in questa risposta vedo se riesco a modificarle quelli inviati in precedenza
OpenOffice 4.1.5 su win7
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

Scusa Patel niente da fare allegato file principale di 2,24mb arrivato a questo punto non so piu' cosa fare. sono sicuro che avendo il file principale e il relativao aggiornamento mi avresti risolto il problema. se c'è altro modo per comunicare avvisami comunque grazie infinite
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

Gennaro ha scritto: Ho usato la tua correzione ma non funziona poichè cancella tutto tutto senza incollare nulla.
l'hai usata su Libre ? su OpenOffice non funziona. Libre è molto più avanti riguardo alla compatibilità con excel
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

si patel è stata usata su libre e su open sia portable sia su altro computer dove ho installato x entrambe le ultime versioni. Non c'è un modo per fati averei due file direttamente? sono sicuro che appena hai i file subito risolvi. Altrimenti dobbiamo aspettare a settembre quando sul sito interessato verranno messi i due file in excel che tutti possono scaricare e cosi saprai cosa intendevo fare. Logicamente il file principale sarà in excel per cui dovrai vedere come portarlo in ods. ti ringrazio per l'aiuto datomi anche se la soluzione non c'è stata ma non per causa tua. Auguri
OpenOffice 4.1.5 su win7
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

Ho scoperto che posso mandare file grandi attraverso forum_open_office@libero.it
in questo momento ho mandato i file. Il file principale è ShipPatel.ods in base all'inserimento di call vado a trovare se c'è il nome nel database e se c'è in base alla colonna mode ottengo il punteggio. Fammi sapere se è tutto ok Grazie

ti ho rinviato nuovamente i file e in allegato gli screeshoot nei quali mi sembra tutto normale.
Allegati
mail inviata
mail inviata
mail ricevuta sul forum
mail ricevuta sul forum
Ultima modifica di Gennaro il domenica 14 aprile 2019, 9:44, modificato 1 volta in totale.
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

io non vedo i tuoi file, ho trovato vuota la posta in arrivo
prova con dropbox
email : allegatiaoo@gmail.com
password: noncambiatela

però io insisto che la macro non serve, apri ambedue i file con Calc, clic destro sul tab del foglio contenente il data base, Sposta o Copia Foglio, copialo sull'altro file
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

scusate se riprendo l'argomento. la soluzione di Patel è perfetta e funziona manualmente ma a me occorre che l'operazione venga fatta autometicamente schiacciando un bottone. In questi giorni ho continuato a cercare e finalmente ho quasi trovato la soluzione in questa discussione:
viewtopic.php?f=9&t=5180
purtroppo ho cercato di adottare alle mie esigenze ma causa conoscenza di calc ZERO la macro funziona a metà infatti apre il fileB anche se appare un avviso prima(?) poi non si capisce se prende i dati per metterli in FileA comunque qualcosa fa perché mette nelle tre colonne le stesse righe di FileB ma tutte a zero!
qualcuno puo' aggiustarmi la macro? Grazie
Allegati
fileA.ods
file dove devono essere inseriti
(38.22 KiB) Scaricato 66 volte
fileB.ods
file dove vengono presi i dati
(19.18 KiB) Scaricato 61 volte
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

una volta aperto il file B cosa deve copiare la macro e dove ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

Ciao Patel grazie per la pronta risposta. allora deve copiare da B2 fino ultimo rigo D le tre colonne B,C,Dscritte. e li deve incollare nel fileA da B2.
nell'peratività completa deve funzionare in questo modo : all'avvio della macro cancello i dati nel FileA e vado a incollare i dati (aggiornati) del fileB
per chiudere la cosa precisissima è considerare il fileB come xlx o.xlsx e non .ods. Manualmente come mi hai fatto notare è semplicissima ma poichè dovrebbero usarla centinaia di persone che non sono pratiche allora mi serve la macro che sarà abbinata al tasto"aggiorna" e si ha tutto automaticamente. Con i due file excel la macro funziona perfettamente ma poichè non tutti usano excel mi serve per coloro che usano ods. grazie
Allegati
fileB.ods
file aggiornato che deve andare in FileA
(23.5 KiB) Scaricato 64 volte
fileA.ods
file principale dove c'è la macro
(30.91 KiB) Scaricato 66 volte
Ultima modifica di Gennaro il martedì 23 aprile 2019, 13:27, modificato 1 volta in totale.
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

Nel fileB le colonne B e C sono vuote
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

scusa devo aver fatto qualche confusione ti ho allegato i nuovi file al messaggio precedente e messo delle note.
Allegati
fileA.ods
Nuovo file con nota
(29.18 KiB) Scaricato 72 volte
Ultima modifica di Gennaro il martedì 23 aprile 2019, 20:42, modificato 1 volta in totale.
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Copiare colonne excel in file calc

Messaggio da patel »

prova questa sub main

Codice: Seleziona tutto

Sub Main
dim percorsoEnomefileA,urlFileB,percorso as string
Dim DocB As Object
Dim vuoto as integer
Dim Dummy() 'It is an (empty) array of PropertyValues
	DocA=ThisComponent
	oSheetA=DocA.Sheets.getByName(fogliofileA)
	percorsoEnomefileA=nomefile()
	percorso=ricavapercorso(percorsoEnomefileA)
	if left(percorso,1)="/" then
		percorso=right(percorso,len(percorso)-1)
	end if
	urlFileB= percorso & nomefileB
    fname = ConvertToURL(urlFileB)
    DocB = StarDesktop.loadComponentFromURL (fname, "_blank",0, Dummy() )
'	DocB= StarDesktop.loadComponentFromURL(urlFileB, "_hidden", vuoto, Dummy)
	oSheetB=DocB.Sheets.getByName(fogliofileB)
	oCol1B=oSheetB.Columns.getByName(col1B)
	oRange1B = oCol1B.queryEmptyCells()  
  	oRango=oRange1B.getbyIndex(oRange1B.count-1)
   	ultimarigaB=mid(oRango.AbsoluteName,instr(oRango.AbsoluteName,"$" & col1B)+3,instr(oRango.AbsoluteName,":")-instr(oRango.AbsoluteName,"$" & col1B)-3)
	Range = oSheetB.getCellRangeByName("B2:D" &ultimarigaB).getDataArray
'	nrighe = UBound(Range()) - LBound(Range())
	dRange  = oSheetA.getCellRangeByName("B2:D" &ultimarigaB)
	dRange.setDataArray(Range)

	DocB.close(True)
	msgbox "Aggiornato"
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: Copiare colonne excel in file calc

Messaggio da Gennaro »

perfetto!!!!Grazie. la macro funziona perfettamente ti ringrazio per questo. ho solo il problema che non sempre le righe del FileB sono di piu' del FileA per cui come nel caso inviato quando incollo le righe di File B rimangono anche le righe che sono di piu'. Non puoi inserirmi un cancella colonne B,C,D del FileA all'avvio della macro?. Lo so si puo' fare manualmente ma ripeto a me serve tutto in automatico in modo tale che nessuno tocca i due File. Ho rimandato il FileA
dove c'è l'aggiornamento ed ho evidenziato le ricghe che non servono e messo una nota. Grazie
OpenOffice 4.1.5 su win7
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: [Risolto] Copiare colonne excel in file calc

Messaggio da Gennaro »

risolto!!! ho trovato il modo di cancellare tutto prima di caricare l'aggiornamento. ho messo risolto. ti ringrazio per il tempo speso per la risoluzione del mio problema. Grazie ancora
Allegati
fileB.xlsx
file excel da copiare
(105.77 KiB) Scaricato 56 volte
fileA.ods
file con macro cancella
(25.18 KiB) Scaricato 70 volte
Ultima modifica di Gennaro il mercoledì 24 aprile 2019, 20:33, modificato 1 volta in totale.
OpenOffice 4.1.5 su win7
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] Copiare colonne excel in file calc

Messaggio da patel »

Come hai fatto per cancellare tutto ? sarebbe bene indicare sempre le soluzioni anche da parte di chi ha aperto la discussione.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gennaro
Messaggi: 24
Iscritto il: giovedì 11 aprile 2019, 13:00

Re: [Risolto] Copiare colonne excel in file calc

Messaggio da Gennaro »

scusate. nel messaggio precedente ho messo i due file. il primo contiene tutte le macro mentre il secondo è xlsx che deve andare in FileA. da notare che devo ancora sistemare bene la macro avvisoDB perche premendo il tasto SI effettua l'operazione mentre il tasto NO dovrebbe uscire e non lo fa. Comunque la soòuzione di Patel è perfetta Grazie ancora
OpenOffice 4.1.5 su win7
Rispondi