Salve a tutti.Ho bisogno di un aiuto per realizzare una macro che mi permetta di importare delle determinate colonne da un file per poi eleborarle nel mio gestionale.Mi spiego meglio facendo un esempio.
Nel mio file.ods devo importare sempre le colonne "H-J-O-AC-AG" dal file di partenza "dati.xls"
Oltre all'importazione di queste colonne dovrei avere la possibilità di filtrare la colonna "AG" 
Non ho nessuna esperienza nella realizzazione di macro e chiedo quindi aiuto a qualcuno
Allego il file "dati.xls" di partenza
Grazie infinite a chi mi puo aiutare
			
							Macro importazione colonne
Macro importazione colonne
- Allegati
 - 
			
		
		
				
- dati.xls
 - (20.5 KiB) Scaricato 31 volte
 
 
openoffice 4.1.3 windows seven
			
						Re: Macro importazione colonne
.
N.B.: Nella macro va adeguato il percorso del file esterno.
.
.
Per poter filtrare in colonna AG il dati importati ti basta impostare un filtro automatico.
.
			
							N.B.: Nella macro va adeguato il percorso del file esterno.
.
Codice: Seleziona tutto
Sub ImportaDatiDaColonneDiInteresseDelFileEsternoXls
Rem Link del quesito: https://forum.openoffice.org/it/forum/viewtopic.php?t=12540
Rem ----------------------------------------------------------------------------------------------------------------------------
Rem Dichiara vettore come nuova istanza associandogli proprietà Hidden/Nascosto
Rem Non farà mostrare la finestra di caricamento del file di origine
Dim Dummy(0) as New com.sun.star.beans.PropertyValue
Dummy(0).Name = "Hidden" 
Dummy(0).Value = True ' False x visualizzarlo
PercorsoDelFile = "file:///home/NomeUtente/Scaricati/dati.xls"  ''' PERCORSO DA ADEGUARE ALLE PROPRIE ESIGENZE
FileDati = StarDesktop.loadComponentFromURL (PercorsoDelFile, "_blank",0, Dummy() ) 'Adeguare il percorso
FoglioDeiDati = FileDati.Sheets(0) 'PrimoFoglio
Rem ----------------------------------------------------------------------------------------------------------------------------
Doc = ThisComponent
FoglioDiLavoro = Doc.Sheets(0) 'PrimoFoglio
Rem Verifica numero ultima riga dati in foglio dati utili esterni (File dati.xls)
CursoreFd = FoglioDeiDati.createCursor
CursoreFd.GotoEndOfUsedArea(False)
UltimaRigaDatiFd = CursoreFd.RangeAddress.EndRow
'Print UltimaRigaDatiFd ' Test di verifica OK
Rem Verifica numero ultima riga dati nel foglio di lavoro
CursoreFL = FoglioDeiDati.createCursor
CursoreFL.GotoEndOfUsedArea(False)
UltimaRigaDatiFL = CursoreFL.RangeAddress.EndRow
'Print UltimaRigaDatiFL ' Test di verifica OK
'STOP
Rem area dati di interesse in colonna H
RangeDaCopiare = FoglioDeiDati.getCellRangeByName("H2:H" & UltimaRigaDatiFd+1).getDataArray ' range da copiare
RangeDestinazione = FoglioDiLavoro.getCellRangeByName("H2:H" & UltimaRigaDatiFd+1) ' L'area del range di destinazione
RangeDestinazione.setDataArray(RangeDaCopiare) ' Incolla i dati copiati.
Rem area dati di interesse in colonna J
RangeDaCopiare = FoglioDeiDati.getCellRangeByName("J2:J" & UltimaRigaDatiFd+1).getDataArray ' range da copiare
RangeDestinazione = FoglioDiLavoro.getCellRangeByName("J2:J" & UltimaRigaDatiFd+1) ' L'area del range di destinazione
RangeDestinazione.setDataArray(RangeDaCopiare) ' Incolla i dati copiati.
Rem area dati di interesse in colonna O
RangeDaCopiare = FoglioDeiDati.getCellRangeByName("O2:O" & UltimaRigaDatiFd+1).getDataArray ' range da copiare
RangeDestinazione = FoglioDiLavoro.getCellRangeByName("O2:O" & UltimaRigaDatiFd+1) ' L'area del range di destinazione
RangeDestinazione.setDataArray(RangeDaCopiare) ' Incolla i dati copiati.
Rem area dati di interesse in colonna AC
RangeDaCopiare = FoglioDeiDati.getCellRangeByName("AC2:AC" & UltimaRigaDatiFd+1).getDataArray ' range da copiare
RangeDestinazione = FoglioDiLavoro.getCellRangeByName("AC2:AC" & UltimaRigaDatiFd+1) ' L'area del range di destinazione
RangeDestinazione.setDataArray(RangeDaCopiare) ' Incolla i dati copiati.
Rem area dati di interesse in colonna AG
RangeDaCopiare = FoglioDeiDati.getCellRangeByName("AG2:AG" & UltimaRigaDatiFd+1).getDataArray ' range da copiare
RangeDestinazione = FoglioDiLavoro.getCellRangeByName("AG2:AG" & UltimaRigaDatiFd+1) ' L'area del range di destinazione
RangeDestinazione.setDataArray(RangeDaCopiare) ' Incolla i dati copiati.
'FileDati.Close(True) 'Eventuale chiusura file origine dati ... se inizialmente optato per ... Dummy(0).Value = False 
End subPer poter filtrare in colonna AG il dati importati ti basta impostare un filtro automatico.
.
- Allegati
 - 
			
		
		
				
- Test - Macro - Importa dati colonne H J O AC AG.ods
 - (16.22 KiB) Scaricato 36 volte
 
 
Re: Macro importazione colonne
Perfetto!!
é possibile visualizzare solo le colonne che mi interessano ed eliminare quelle vuote?
grazie mille
			
			
									
						
							é possibile visualizzare solo le colonne che mi interessano ed eliminare quelle vuote?
grazie mille
openoffice 4.1.3 windows seven
			
						