Discussione:
VBA Importazione file .csv e separatore di elenco
(troppo vecchio per rispondere)
gilgil
2005-03-05 10:37:08 UTC
Permalink
Devo importare in Excel un file .csv che usa come separatore di elenco la
barra verticale | e come separatore decimale la virgola.
Per esempio:
pippo|pluto|0,456
tavolo|sedia|739

Se apro manualmente questo file con il comando Apri tutto funziona bene in
quanto mi ritrovo il testo tutto raccolto in una unica colonna e posso poi
facilmente suddividerlo su tre colonne con il comando testo in colonne.

Se invece apro il file all'interno di una macro con il comando:
Application.Dialogs(xlDialogOpen).Show
il testo viene suddiviso in parte su due colonne in quanto le virgole
vengono erroneamente interpretate come separatore di elenco. In questo modo
risulta poi complicata la successiva suddivisione del testo in colonne.

Infine se apro il file all'interno di una macro con il comando:
Workbooks.Open Filename: = "nomefile"
tutto funziona bene però debbo inserire a priori il nome del file nella
macro.

Come posso rimediare a questo strano comportamento di
Application.Dialogs(xlDialogOpen).Show?
Tiziano Marmiroli
2005-03-05 11:48:43 UTC
Permalink
Post by gilgil
Devo importare in Excel un file .csv che usa come separatore di elenco la
barra verticale | e come separatore decimale la virgola.
pippo|pluto|0,456
tavolo|sedia|739
Se apro manualmente questo file con il comando Apri tutto funziona bene in
quanto mi ritrovo il testo tutto raccolto in una unica colonna e posso poi
facilmente suddividerlo su tre colonne con il comando testo in colonne.
Application.Dialogs(xlDialogOpen).Show
il testo viene suddiviso in parte su due colonne in quanto le virgole
vengono erroneamente interpretate come separatore di elenco. In questo modo
risulta poi complicata la successiva suddivisione del testo in colonne.
Workbooks.Open Filename: = "nomefile"
tutto funziona bene però debbo inserire a priori il nome del file nella
macro.
Come posso rimediare a questo strano comportamento di
Application.Dialogs(xlDialogOpen).Show?
Dim nomefile As String
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
--
Tiziano Marmiroli
Microsoft MVP - Office
Sandro
2005-03-05 12:51:06 UTC
Permalink
Post by Tiziano Marmiroli
Post by gilgil
Devo importare in Excel un file .csv che usa come separatore di elenco la
barra verticale | e come separatore decimale la virgola.
pippo|pluto|0,456
tavolo|sedia|739
[cut]
Post by Tiziano Marmiroli
Dim nomefile As String
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
Se nella finestra di dialogo, clicco sul pulsante "Annulla", come posso da
codice *intercettare* questa scelta?????

Ciao
Sandro
gilgil
2005-03-05 15:46:19 UTC
Permalink
Post by Tiziano Marmiroli
Post by gilgil
Come posso rimediare a questo strano comportamento di
Application.Dialogs(xlDialogOpen).Show?
Dim nomefile As String
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
In questo modo è OK. Grazie del suggerimento.

Per fare in modo che il dialog box si apra sulla mia directory E:\Transit ho
aggiunto una riga iniziale:

Application.DefaultFilePath = "E:\Transit"
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"

Questo comando mi pare non venga recepito. Come mai?
--
gilgil
Sandro
2005-03-05 19:37:48 UTC
Permalink
Post by gilgil
Post by Tiziano Marmiroli
Post by gilgil
Come posso rimediare a questo strano comportamento di
Application.Dialogs(xlDialogOpen).Show?
Dim nomefile As String
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
In questo modo è OK. Grazie del suggerimento.
Per fare in modo che il dialog box si apra sulla mia directory E:\Transit ho
Application.DefaultFilePath = "E:\Transit"
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
Questo comando mi pare non venga recepito. Come mai?
Ho notato che anche a me non funziona, pero' con il seguente non ho avuto
problemi:

ChDir "E:\Transit"

Speriamo che qualcuno ci possa dare qualche chiarimento.
Utilizzo Excel2000

Ciao
Sandro
gilgil
2005-03-06 10:27:52 UTC
Permalink
Post by Sandro
Post by gilgil
Per fare in modo che il dialog box si apra sulla mia directory E:\Transit
Application.DefaultFilePath = "E:\Transit"
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
Questo comando mi pare non venga recepito. Come mai?
Ho notato che anche a me non funziona, pero' con il seguente non ho avuto
ChDir "E:\Transit"
ChDir funziona perfettamente.
Grazie per il suggerimento.
--
gilgil
Sandro
2005-03-06 13:17:52 UTC
Permalink
Post by gilgil
Post by Sandro
Post by gilgil
Per fare in modo che il dialog box si apra sulla mia directory E:\Transit
Application.DefaultFilePath = "E:\Transit"
nomefile = Application.GetOpenFilename
Workbooks.Open Filename:=nomefile, Format:=6, delimiter:="|"
Questo comando mi pare non venga recepito. Come mai?
Ho notato che anche a me non funziona, pero' con il seguente non ho avuto
ChDir "E:\Transit"
ChDir funziona perfettamente.
Grazie per il suggerimento.
Prego.

Ciao
Sandro

Loading...