Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Importare da txt a excel: problema con la virgola

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Importare da txt a excel: problema con la virgola

Postdi cuti87 » 14/03/12 22:49

buona sera, premetto che sono nuovo all'ambiente di programmazione in excel.
ho un problema nell'importazione di un file txt in excel, ma sicuramente è molto semplice per voi.
ho una serie di numeri, ne posto un esempio:

3.697541E+00 4.849641E-01 6.885129E+01

ma mi vengono copiati come

3697541 484964,1 68851290

come si vede, il punto viene proprio dimenticato!
avevo pensato a cambiare le impostazioni in excel, ma non cambia nulla se viene già portato dentro senza punto!

posto anche la macro:

Grazie a tutti quelli che risponderanno!

p.s. la macro non è mia ;) ;)

Codice: Seleziona tutto
Sub Copia_Dati_Txt()

Dim sh1 As Worksheet

With ThisWorkbook
        Set sh1 = .Worksheets("Foglio1")
End With

With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "text", "*.txt", 1
        .Show

     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     GoTo Esci
     End If
     FullNome = .SelectedItems(1)     'Directory e Nome del file selezionato
    End With
Esci:

With sh1.QueryTables.Add(Connection:="TEXT;" & FullNome, Destination:=sh1.Range("A8"))
End With
   
    With sh1.QueryTables.Add(Connection:= _
        "TEXT;" & FullNome _
        , Destination:=sh1.Range("$A$8"))
        .Name = "lybk_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierSingleQuote
        .TextFileConsecutiveDelimiter = True
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = True
        .TextFileOtherDelimiter = ";"
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

cuti87
Newbie
 
Post: 2
Iscritto il: 14/03/12 21:18

Sponsor
 

Re: Importare da txt a excel: problema con la virgola

Postdi Anthony47 » 14/03/12 23:58

Ciao cuti87, benvenuto nel forum.
Devi specificare nella macro quali sono i separatori da usare; prova ad aggiungere le seguenti due istruzioni:
Codice: Seleziona tutto
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)   'ESISTENTE
        .TextFileDecimalSeparator = "."                              '<< AGGIUNTA
        .TextFileThousandsSeparator = "'"                          '<< AGGIUNTA

Cao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Importare da txt a excel: problema con la virgola

Postdi cuti87 » 15/03/12 12:21

perfetto! sapevo che era una cavolata, ma non ho trovato una buona guida su internet.

altra cosa, se poi importo un altro file con la stessa macro, mi fa scalare tutti i dati a sx e mi copia i nuovi partendo da A8, com'è giustamente impostato.
come faccio a dire che invece gli copi sopra?? devo fare prima una funzione "delete"?

un'ultima cosa, come faccio a mettere dei cicli for le lettere delle colonne?
cioè in questa:
Worksheets("COMPLETE").Range("B" & j).Value = Worksheets("Foglio1").Range("B" & i).Value

vorrei sostituire la B della colonna con un numero, per poter mettere il tutto in un ciclo for

grazie mille, sei gentilissimo
cuti87
Newbie
 
Post: 2
Iscritto il: 14/03/12 21:18

Re: Importare da txt a excel: problema con la virgola

Postdi Anthony47 » 15/03/12 23:14

perfetto! sapevo che era una cavolata, ma non ho trovato una buona guida su internet.
No, non era una cavolata.

Per la prima delle nuove domande, modifica questa riga:
Codice: Seleziona tutto
        .RefreshStyle = xlOverwriteCells ' Era  xlInsertDeleteCells

Per la seconda domanda, la cosa piu' diretta e' usare Cells invece di Range; la tua riga di esempio diventerebbe quindi
Codice: Seleziona tutto
Worksheets("COMPLETE").Cells(j, JJ).Value = Worksheets("Foglio1").Cells(i, JJ).Value

Ho immaginato che JJ sia una variabile che "conti" le colonne, come da sintassi della "Proprieta' Cells".

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Importare da txt a excel: problema con la virgola":


Chi c’è in linea

Visitano il forum: alfrimpa e 5 ospiti