Discussione:
Aggiornamento dati esterni
(troppo vecchio per rispondere)
f***@gmail.com
2013-03-11 12:56:54 UTC
Permalink
Ciao a tutti,
ho un file di origine da cui pesco i dati (ODBC) in cui ho creato una macro che faccia l'aggiornamento dei dati, formatti la tabella e applichi determinati filtri al fine di velocizzare la cosa all'utilizzatore finale.
Quando faccio l'aggiornamento mi apre sempre il file di origine (cosa che fino a qualche tempo fa non accadeva). Si può evitare o ci devo per forza convivere?

Altra cosa in merito alla macro in questione
--------
Application.ScreenUpdating = False
ActiveWorkbook.RefreshAll
Columns("i:v").Select
Selection.NumberFormat = "dd/mm/yy;@"
Rows("5:5").RowHeight = 0
Columns("A:A").ColumnWidth = 7.29
[cut]
ActiveSheet.ListObjects("Tabella_EUROPA2.xlsx__1").Range.AutoFilter Field:=12, Criteria1:="<>"
Application.ScreenUpdating = True
End Sub
------

Se eseguo la macro passo passo (F8) tutto funziona correttamente ma se la eseguo normalmente quando arriva alla fine mi riapplica la vecchia formattazione delle colonne (come se arrivasse alla fine delle istruzioni senza aver fatto a tempo a finire di aggiornare i dati). Ho provato con wait ma non funziona perchè sospende l'esecuzione della macro.
Avete qualche idea? suggerimento?
Grazie ancora.
MauroF
r
2013-03-11 16:06:16 UTC
Permalink
Il giorno lunedì 11 marzo 2013 13:56:54 UTC+1, ***@gmail.com ha scritto:
Avete qualche idea? suggerimento? Grazie ancora. MauroF

potresti postare l'intera procedura e il Testo comando della query di connessione lo trovi in proprietà della connessione scheda definizione.

domanda: perchè non filtrare i dati prima di importarli?

Saluti
r
f***@gmail.com
2013-03-12 16:09:32 UTC
Permalink
Grazie del consiglio "R".. ho filtrato i file nella query ed effettivamente mi semplifica la vita.
Mi rimane comunque un problema. Delle colonne che importe 2 sono campi data. Una me la importa correttamente, l'altra me la visualizza come numero anzichè come data. Eppure sia nel file di origine che in quello di destinazione le colonne sono formattate correttamente.
Se entro nella cella con F2 e poi INVIO si sistema. Come posso risolvere?
Grazie

Per completezza di infomrazioni questa è la stringa di connessione
'DSN=Excel Files;DBQ=P:\LavMeccaniche\EUROPA2.xlsx;DefaultDir=P:\LavMeccaniche;'DriverId=1046;MaxBufferSize=2048;PageTimeout=5;

mentre questo è il testo comando
'SELECT Excel_BuiltIn_Print_Area_1.F1, Excel_BuiltIn_Print_Area_1.F2, 'Excel_BuiltIn_Print_Area_1.F3, Excel_BuiltIn_Print_Area_1.F4, 'Excel_BuiltIn_Print_Area_1.F6, Excel_BuiltIn_Print_Area_1.F7, 'Excel_BuiltIn_Print_Area_1.`da fondare`, Excel_BuiltIn_Print_Area_1.fondate, 'Excel_BuiltIn_Print_Area_1.F20
'FROM `P:\LavMeccaniche\EUROPA2.xlsx`.Excel_BuiltIn_Print_Area_1 'Excel_BuiltIn_Print_Area_1
'WHERE (Excel_BuiltIn_Print_Area_1.`da fondare` Is Not Null) AND '(Excel_BuiltIn_Print_Area_1.fondate Is Null) AND '(Excel_BuiltIn_Print_Area_1.F20 Is Null)
'ORDER BY Excel_BuiltIn_Print_Area_1.F7
r
2013-03-12 18:57:40 UTC
Permalink
Una domanda, nel file di origine la colonna con le date contiene celle vuote nelle prime righe? Dal tipo di dati delle prime celle viene definito il tipo di dato usato poi nel risultato della query, il fatto che ci siano celle vuote potrebbe causare l'interpretazione ambigua numero-data.
f***@gmail.com
2013-03-13 07:07:50 UTC
Permalink
Perfetto, ora funziona. Effettivamente una delle celle a inizio colonna non conteneva una data.
Ne approfitto ancora per una domanda vista la tua gentilezze.
Perchè quando faccio l'aggiornamento e la formattazione (da macro.. vedi sotto) mi apre sempre il file? c'è modo di evitarlo?
Inoltre se eseguo la macro passo passo (F8) tutto funziona correttaemnte. Se invece la lancio normalmente alla fine mi riprende la formattazione di partenza.
grazie

---------
Sub Macro1()
Application.ScreenUpdating = False
Range("c5").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Rows("2:2").RowHeight = 17.25
Columns("a:a").ColumnWidth = 5
Columns("b:b").ColumnWidth = 8
Columns("c:c").ColumnWidth = 11
Columns("d:d").ColumnWidth = 19
Columns("e:e").ColumnWidth = 22
Columns("f:f").ColumnWidth = 18
Columns("G:G").ColumnWidth = 6
Columns("h:h").ColumnWidth = 10
Columns("i:i").ColumnWidth = 12
Columns("j:j").ColumnWidth = 0
Columns("k:k").ColumnWidth = 0
Cells(5, 1).Select
Application.ScreenUpdating = True
End Sub

Continua a leggere su narkive:
Loading...