Pagina 1 di 1

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 9:45
da Alieno86
Buongiorno,
non so se sia il posto giusto per fare questa semplice domandina o se è meglio spostarla in un altra sezione.
La mia problematica è questa, sto creando una macro che utilizza power-query per effettuare delle trasformazioni e poi restituisce una tabella che verrà successivamente rilavorata.
il problema è dato dal fatto il file deve essere utilizzato più volte, pertanto ogni volta, dopo la prima, il sistema entra in conflitto perché trova gia la tabella1.
Esiste un comando per eliminare una query in modo da inserirla come ultimo passaggio?

Grazie della disponibilità

Francesco

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 9:55
da Andrea90
Ciao Alieno86,

Provato ad utilizzare il metodo Delete?

https://docs.microsoft.com/en-us/office ... querytable

Andrea

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 11:01
da Alieno86
No, purtroppo non riesco farò un paio di prove...
neanche il registratore di macro riesce ad aiutarmi.

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 11:09
da Andrea90
Alieno86,

ThisWorkbook.Queries(“”).Delete

Dentro la parentesi metti il nome che hai dato alla tua query.

Andrea

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 11:24
da Alieno86
Mha mi dice l'indice non è compreso tra i limiti.

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 11:29
da Andrea90
Alieno86,

se vuoi un aiuto nello specifico devi allegare un file.

Altrimenti senza vedere il file, e nemmeno il codice si fa fatica ad aiutarti. Il comando che ti ho girato serve per eliminare la Query (pertanto la tabella risultante non sarà più aggiornabile). Più di così non so che fare al momento, il codice a me funziona (per sicurezza l’ho anche provato su un file demo).

Andrea

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 12:28
da Alieno86
ti allego un file di demo "è tutto materiale consultabile liberamente su internet"
grazie mille per la disponibilità

Francesco

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 12:55
da Andrea90
Alieno86,

Senza entrare nel merito del codice, che presenta errori in fase di lanci ripetuti della stessa procedura, prova con:

For each qr in ThisWorkbook.Queries
If qr.Name = “Tabella1” Then qr.Delete
Next qr

Inoltre non capisco perché il codice che ti avevo fornito prima lo hai inserito li in fondo al costrutto with, quando la query la crei in un passaggio precedente e pertanto è prima di quest’ultimo che andrei ad eliminarla.

Andrea

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 12:57
da Alieno86
effettivamente il codice è molto arrafazzonato ma dopo tutto non sono esperto (per niente) un semplice smanettone senza studi specifici.
Grazie dell'aiuto.

VBA E QUERY E CONNESSIONI

Inviato: lun 6 dic 2021, 13:18
da Alieno86
Non riesco ad implementare il file penso che utilizzerò la possibilità di fare un nome dinamico con la data di sistema abbinato al nome della query, poiché è un estrazione che farò solo una volta alla settimana.