aprire un file in excel senza perdere la formattazione

Anonimo
2010-12-09T07:28:19+00:00

Ho un txt non delimitato da separatori, è una stringa continua.

Lo separo a mano e tutto funziona.

Il problema sorge quando devo aprire un altro file formattato sempre in quel modo. Se lo riapro con excel mi perde la formattazione e devo rifare tutto da capo :\

c'è un modo per far aprire il file mantenendo la formattazione?

grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-12-09T16:51:55+00:00

no così non va...

mi trasla il foglio a destra

Prova così:

Public Sub m()

'gestione errori

On Error GoTo RigaErrore

    'dichiaro le variabili

    Dim sPathNome As Variant

    'richiamo la finestra Apri e passo alla

    'stringa la path completa ed il nome

    'del file selezionato

    sPathNome = Application.GetOpenFilename( _

        "File di testo (*.txt; *.csv),*.txt; *csv", _

        , "Selezionare il file")

    Application.ScreenUpdating = False

    With ActiveSheet

        .Range("A:C").EntireColumn.Delete

        'se è stato selezionato un file

        If sPathNome <> False Then

            With ActiveSheet.QueryTables.Add(Connection:= _

                "TEXT;" & sPathNome, _

                    Destination:=Range("A2"))

                .FieldNames = True

                .RowNumbers = False

                .FillAdjacentFormulas = False

                .PreserveFormatting = True

                .RefreshOnFileOpen = False

                .RefreshStyle = xlInsertDeleteCells

                .SavePassword = False

                .SaveData = True

                .AdjustColumnWidth = True

                .RefreshPeriod = 0

                .TextFilePromptOnRefresh = False

                .TextFilePlatform = 850

                .TextFileStartRow = 1

                .TextFileParseType = xlFixedWidth

                .TextFileTextQualifier = xlTextQualifierDoubleQuote

                .TextFileConsecutiveDelimiter = True

                .TextFileTabDelimiter = True

                .TextFileSemicolonDelimiter = False

                .TextFileCommaDelimiter = False

                .TextFileSpaceDelimiter = True

                .TextFileColumnDataTypes = Array(2, 2, 2)

                .TextFileFixedColumnWidths = Array(5, 15)

                .TextFileTrailingMinusNumbers = True

                .Refresh BackgroundQuery:=False

            End With

        End If

        .Range("A1").Value = "testo che vuoi in A1"

        .Range("B1").Value = "testo che vuoi in B1"

        .Range("C1").Value = "testo che vuoi in C1"

        .Columns(1).ColumnWidth = 25

        .Columns(1).HorizontalAlignment = xlCenter

        .Columns(2).ColumnWidth = 20

        .Columns(2).HorizontalAlignment = xlCenter

        .Columns(3).ColumnWidth = 35

        .Columns(3).HorizontalAlignment = xlCenter

        Application.CutCopyMode = False

    End With

'codice sempre eseguito

RigaChiusura:

    Application.ScreenUpdating = True

    Exit Sub

'in caso di errore

RigaErrore:

    'visualizzo una MsgBox con i dati dell'errore

    MsgBox Err.Number & vbNewLine & Err.Description

    'vado alla riga di chiusura

    Resume RigaChiusura

End Sub

Dove:

        .Range("A:C").EntireColumn.Delete '<<<=== elimino tre colonne(vedi tu se devi eliminarne di più)

e dove:

       .Range("A1").Value = "testo che vuoi in A1"   '<<<=== il testo che devo inserire in A1, B1, C1(vedi tu se sono di più)

        .Range("B1").Value = "testo che vuoi in B1"

        .Range("C1").Value = "testo che vuoi in C1"

        .Columns(1).ColumnWidth = 25                    '<<<=== dimensiono le colonne(1 per A, 2 per B, 3 per C)

        .Columns(1).HorizontalAlignment = xlCenter  '<<<=== centro il testo nelle colonne       

        .Columns(2).ColumnWidth = 20

        .Columns(2).HorizontalAlignment = xlCenter

        .Columns(3).ColumnWidth = 35

        .Columns(3).HorizontalAlignment = xlCenter


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-12-09T09:47:03+00:00

    come registro la macro se la procedura di "divisione dei campi" avviene all'apertura di excel?

    grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-12-09T09:24:14+00:00

    000000111250361001      22888888888888888811      281120102

    è tutta una stringa unica(compresi i spazi vuoti)

    ed io li divido a mano con la procedura guidata di excel

    Puoi creare/registrare  una macro che faccia questo per te.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-12-09T08:58:00+00:00

    es.

    000000111250361001      22888888888888888811      281120102

    è tutta una stringa unica(compresi i spazi vuoti)

    ed io li divido a mano con la procedura guidata di excel

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-12-09T08:12:33+00:00

    Ho un txt non delimitato da separatori, è una stringa continua.

    Lo separo a mano e tutto funziona.

    Il problema sorge quando devo aprire un altro file formattato sempre in quel modo. Se lo riapro con excel mi perde la formattazione e devo rifare tutto da capo :\

    c'è un modo per far aprire il file mantenendo la formattazione?

    grazie

    Qual'è la logica che utilizzi per seprare il testo della stringa? Puoi postare due o tre stringhe di esempio? Grazie.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento