Riconoscimento Funzione L’argomento è risolto
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 41 | Topic creati
- Iscritto il: gio 23 lug 2020, 7:49
- Ringraziato: 1 volta
Riconoscimento Funzione
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
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
- Allegati
-
- Prove.rar
- (483.76 KiB) Scaricato 10 volte
-
- Messaggi: 2319 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
Riconoscimento Funzione
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ì:
scrivi:
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
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]),
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]),
A presto,
Andrea
-
Autore del topic - Messaggi: 41 | Topic creati
- Iscritto il: gio 23 lug 2020, 7:49
- Ringraziato: 1 volta
Riconoscimento Funzione
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
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
non so come continuare cosa sbaglio?
Ciao By Sal
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
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
non so come continuare cosa sbaglio?
Ciao By Sal
-
- Messaggi: 2319 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
-
- Messaggi: 890 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:03
- Luogo: San Giovanni in Persiceto (BO)
- Ringraziato: 325 volte
- Contatta:
Riconoscimento Funzione
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
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
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
-
Autore del topic - Messaggi: 41 | Topic creati
- Iscritto il: gio 23 lug 2020, 7:49
- Ringraziato: 1 volta
Riconoscimento Funzione
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
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
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
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
-
- Messaggi: 890 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:03
- Luogo: San Giovanni in Persiceto (BO)
- Ringraziato: 325 volte
- Contatta:
Riconoscimento Funzione
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
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
-
Autore del topic - Messaggi: 41 | Topic creati
- Iscritto il: gio 23 lug 2020, 7:49
- Ringraziato: 1 volta
Riconoscimento Funzione
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
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
-
Autore del topic - Messaggi: 41 | Topic creati
- Iscritto il: gio 23 lug 2020, 7:49
- Ringraziato: 1 volta
Riconoscimento Funzione
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
Ciao e grazie per tutto l'appoggio, come faccio a mettere risolto?, By Sal
-
- Messaggi: 890 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:03
- Luogo: San Giovanni in Persiceto (BO)
- Ringraziato: 325 volte
- Contatta:
Riconoscimento Funzione
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
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione