Riconoscimento Funzione L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi
Avatar utente

by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Riconoscimento Funzione

Messaggio da by sal »

Ciao, sono 3 giorni che cerco di venirne fuori sto seguendo tutti i tutorial sull'argomento ma non riesco a venirne fuori e non capisco perche, già chiesto anche precedentemente sull'argomento

al momento ho 2 file CSV listino1-listino2 e devo caricarli nel foglio excel 1 alla volta al momento separati non accodati.

ho creato la prima query e funziona tutto a dovere ora sempre nella stessa query devo cambiare l'origine cioe invece di aggiornare listino1 mi deve aggiornare la stessa tabella con i dati di listino2, i campi sono uguali ed anche le intestazioni variano solo i record ed i dati.

come vedete ho cercato di creare una funzione che leggendo l'indirizzo del listino2 mi carica i dati relativi al listino2.

ma quando vado ad accorpare la funzione con la query mi da errore perche non riconosce l'iindirizzo sbaglio dove inserisco la funzione, ho provato anche in altre posizioni ma è sempre la stessa cosa.

ho duplicato la query per inserire la funzione, ma non riesco a portarla avanti.

allego un esempio file excel con i file csv di quello che sono riuscito a fare, riesco a creare la funzione anche con 2 campi Path e file l'ho ridotto ad 1 per semplificare ma sono sempre allo stesso palo ma quando vado ad accorpare la funzione nella query non ci riesco a farla funzionare

se potete aiutarmi o almeno spiegare cosa sbaglio, Ciao BY Sal :wave:
Allegati
Prove.rar
(483.76 KiB) Scaricato 10 volte


Avatar utente

Andrea90
Messaggi: 2319 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 677 volte
Contatta:

Riconoscimento Funzione

Messaggio da Andrea90 »

Ciao by sal,

Forse ti stai un po' complicando la vita :?

Nel senso che una soluzione molto più semplice (a mio avviso) potrebbe essere:

1) Carichi i tuoi csv all'interno di una cartella. Il caricamento da cartella ti permette di eseguire le stesse operazioni, in automatico sui vari file contenuti al suo interno, pertanto puoi aggiungere ad ogni record il nome del file da cui provengono. I tuoi dati verranno caricati in un'unica query. Esternamente, se vuoi mantenere la possibilità di filtrarli e dunque mostrare solo quelli che vuoi tu in una tabella finale, puoi inserire una tabellina come quella che hai fatto per il percorso, all'interno della tabellina metti il nome del file che vuoi mantenere. Dentro la query che ti ha accodato tutti i file inserisci un filtro basato sul campo "nome file" che ti servirà per mantenere solo quelle di tuo interesse. Così quando vuoi caricare i dati di un altro file basta che cambi il nome dentro la tabellina esterna e ricarichi il tutto.


Oppure

2) Mantieni la tua tabellina con il nome del file, poi al posto di scrivere così:

Codice: Seleziona tutto

Origine = Csv.Document(File.Contents("C:\Users\andre\Desktop\BySal\LIstino1.csv"),[Delimiter=";", Columns=10, Encoding=1252, QuoteStyle=QuoteStyle.None]),
scrivi:

Codice: Seleziona tutto

    Path = Excel.CurrentWorkbook(){[Name="Tabella2"]}[Content][Colonna1]{0},
    Origine = Csv.Document(File.Contents(Path),[Delimiter=";", Columns=10, Encoding=1252, QuoteStyle=QuoteStyle.None]),
Poi il resto del codice rimane uguale. Adesso se vuoi caricare il secondo csv basta che vai nella "Tabella2" e cambi il percorso al file.

A presto,

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Riconoscimento Funzione

Messaggio da by sal »

Ciao Andrea purtroppo non riesco ancora a risolvere il problema, ho preferito il secondo metodo che mi hai proposto in quanto nella tabella inserisco con vba il percorso del file csv.

come vedi dall'immagine quando vado ad aggiornare Ordine3 che è il duplicato di Ordine2 in cui ho fatto la modifica che mi hai suggerito però dice che non riesce a trovare la tabella percorso, ma come vedi esiste ed ha caricato anche una riga

Immagine

ti faccio vedere anche la modifica fatta nell'editor di PWQ, non so se era quello che dovevo fare, però come vedi mi dice anche che non riesce a vedere la colonna1 della tabella percorso

Immagine

non so come continuare cosa sbaglio?

Ciao By Sal :wave:
Avatar utente

Andrea90
Messaggi: 2319 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 677 volte
Contatta:

Riconoscimento Funzione

Messaggio da Andrea90 »

Ciao by sal,

Perché hai scritto “Path” dentro lo step “Origine”?
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Riconoscimento Funzione

Messaggio da Enrico Galli »

Direi che qui ci sono due problemi:
1) lo step Path non riesce a leggere il percorso: sicuramente la tabella in cui hai memorizzato il percorso non ha "Colonna 1" come intestazione di colonna
2) Nello step Origine, Path deve essere scritto senza virgolette perché è un oggetto, non un testo
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Riconoscimento Funzione

Messaggio da by sal »

Ciao ad entrambi, ho scritto "Path" perche senza le virgolette mi dava errore, con le virgolette lo manteneva
però seguendo le istruzioni di Enrico sotituendo "Colonna 1" con "Descrizione" che era l'intestazione della colonna ed anche poi togliendo le virgolette a "Path" come giustamente diceva Andrea, è andato tutto a posto.

finalmente riesco a caricare il CSV voluto nella tabella.

però adesso mi succede un fatto strano, questo è il codice VBA che lancio l'aggiornamento

Codice: Seleziona tutto

Sub ImportaCSV()
Dim r, r1, r2, c, x, d, n, risp, Rng, NomeF, ind, Selez, File, FileApri ', NomeFile

SetFg
Sh1.Activate
sNo
risp = MsgBox("Attenzione i dati precedenti verranno eliminati, Procedo?", vbInformation + vbYesNo, "Controllo Operazioni")
If risp = 7 Then Exit Sub
Sh1.Range("A7:P200").ClearContents
Sh2.Range("A2:BE2000").ClearContents
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "descrizione del tipo di file tre", "*.csv"
    .FilterIndex = 1
    .InitialView = msoFileDialogViewList
    .Title = "Seleziona il file da aprire"""
    .ButtonName = "OK Vai!"
    If .Show = -1 Then
        For Each Selez In .SelectedItems
            FileApri = Selez
        Next
    Else
        MsgBox "Operazione annullata!", vbInformation
        Exit Sub
    End If
End With
    NomeFile = FileApri
    Sh4.Range("AO2") = NomeFile 'memorizza il percorso file nella tabella
    Sh2.Activate
'    ActiveWorkbook.Connections("Query - Percorso").Refresh
'    ActiveWorkbook.Connections("Query - Ordine3").Refresh
    ActiveWorkbook.RefreshAll
    Sh2.Columns("M:M").NumberFormat = "00000"
    Sh2.Columns("U:U").NumberFormat = "00000"
    Visualizza
End Sub
per il riconoscimento del CAP ho preferito formattare direttamente le colonne sul foglio invece di andare ad incasinare ancora di più il codice M

dopo aver memorizzato il percorso ed il nome del file nella tabella "Percorso" aggiorno le query del foglio , ma non le aggiorna rimane ancora la query vecchia, se faccio l'aggiornamento manualmente si aggiorna, prima l'ho fatto singolarmente l'aggiornamento di ogni query, pensando che se aggiornavo prima Ordine3 non trovava aggiornata la Query Percorso e quindi non aggiornava quella giusta
poi ho fatto quella generale "RefreshAll" ed è lo stesso devo fare l'aggiornamento da menu per avere il cambio dei dati.

come mai? non si può lanciare l'aggiornamento dalla macro? per me è un problema.

Ciao By Sal :wave:
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Riconoscimento Funzione

Messaggio da Enrico Galli »

Ciao. Questa macro è piena di variabili e comandi che non vengono utilizzati o non sappiamo cosa sono. Purtroppo, se non alleghi il file, è impossibile diagnosticare il problema. ActiveWorkbook.RefreshAll deve aggiornare tutte le query, come se lo facessi manualmente, e le dipendenze tra una query e l'altra se le risolve da solo.
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Riconoscimento Funzione

Messaggio da by sal »

Ciao Enrico non posso allegare il file originale contiene dati sensibili, ma vedo di fare un estratto.
il file ed anche le macro sono in costruzione ecco il perche di alcune variabili non usate, ma verranno eliminate a lavoro concluso.
setfg serve solo per settare i fogli in Sh1-2-3-4-etc.., l'ultima "Visualizza" è una macro che visualizza su un altro foglio alcune colonne dei dati importati, quindi è inifluente ad i fini della query.

comunque vedo di allegare un file ridotto.

ma infatti se vedi ho commentato le 2 query che richiamano "Percorso-Ordini3" usando "ActiveWorkbook.RefreshAll" ma purtroppo non va devo farlo manualmente.

forse dovrò settare qualcosa per il lancio delle query, perche se ricordo bene ho fatto qualcosa a riguardo, nelle proprietà, in quanto avevo un problema che quando richiamavo diverse query con un ciclo For..Next, non aspettava il tempo di aggiornamento delle query ripetendo il ciclo.
ora vedo se riesco a ricordarmi quale manovra abbia fatto, può darsi che sia quello.

Ciao By Sal (8-D
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Riconoscimento Funzione

Messaggio da by sal »

Ok Enrico Confermo, era il mio settaggio delle query che non le faceva aggiornare, nelle Proprietà stava spuntata la casella "Abilita aggiornamento in background".

Ciao e grazie per tutto l'appoggio, come faccio a mettere risolto?, By Sal :wave: :wave:
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Riconoscimento Funzione

Messaggio da Enrico Galli »

Bene. Per il risolto, c'è una discussione negli annunci dello staff (link diretto nella mia firma)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Rispondi