Risultati da 1 a 9 di 9

Discussione: produzione file .txt



  1. #1
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    159
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    35

    produzione file .txt

    ciao a tutti, il quesito che propongo oggi è, per le mie possibilità, così tosto che confesso di non sapere nemmeno da che parte iniziare.
    l'obiettivo è quello di produrre un file .txt da inviare ad un vettore che lo utilizzerà per inserirlo così com'è nei suoi sistemi allo scopo di istruire commesse di ritiro/consegna.
    il problema è che le colonne devono essere sempre composte da digit fissi. cioè se una colonna per esempio ha 5 caratteri scritti, i rimanenti 5 devono essere degli spazi.
    al contrario se la stessa colonna viene riempita con testo di, ipotesi, 12 caratteri, gli ultimi due non devono esservi scritti. cioè devono essere tagliati. o addirittura impediti dell'esser scritti.

    qualcuno è già incappato in un caso simile?
    File Allegati File Allegati

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1021
    Likes dati
    979

    Re: produzione file .txt

    Prova così se va bene:
    Codice: 
    Function Normalizza(s As String, k As Integer) As String
        s = String(k, "0") & s
        Normalizza = Right(s, k)
    End Function
    
    
    Private Sub ScriviFile()
    Dim Nome As String
    Dim iRow As Long
    Dim iCol As Long
    Dim uRiga As Long
    Dim myFile As String
    Dim Stringa As String
    
    
    ChDir Workbooks(1).Path
    Nome = InputBox("Inserire il nome del file da generare", "Crea file")
    myFile = ThisWorkbook.Path & "\" & Nome & ".txt"
    
    
    uRiga = Foglio1.Range("A" & Rows.Count).End(xlUp).Row
    
    
    Open myFile For Output As #1
    For iRow = 2 To uRiga
        Stringa = ""
        For iCol = 1 To 24
            Stringa = Stringa & Normalizza(Foglio1.Cells(iRow, iCol), Foglio1.Cells(1, iCol))
        Next
        Write #1, Stringa
    Next
    Close #1
    End Sub

  3. #3
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    159
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    35

    Re: produzione file .txt

    grazie mille Rubik, è quasi meravigliosa. con un problemino: la function mi metteva gli "0" ma ho risolto semplicemente impostando " "
    purtroppo me li mette all'inizio. invece vorrei che me li mettesse alla fine.
    poi non ho capito come faccia la function a contare gli spazi fissi che sono variabili di colonna in colonna

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1021
    Likes dati
    979

    Re: produzione file .txt

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    [...]
    purtroppo me li mette all'inizio. invece vorrei che me li mettesse alla fine.[...]
    sostituisci il testo in rosso
    Codice: 
    Function Normalizza(s As String, k As Integer) As String
        s = s & String(k, " ")
        Normalizza = Right(s, k)
    End Function

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    [...]poi non ho capito come faccia la function a contare gli spazi fissi che sono variabili di colonna in colonna
    visto che la lunghezza è nella riga 1 di ogni colonna gli ho indicato l'argomento della funzione "Normalizza"

    Codice: 
    Stringa = Stringa & Normalizza(Foglio1.Cells(iRow, iCol), Foglio1.Cells(1, iCol))

  5. #5
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    159
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    35

    Re: produzione file .txt

    grazie di nuovo Rubik.
    ho capito il sistema per impostare la larghezza. grazie.
    il file che produce ora è vuoto con solo le intestazioni di riga con gli apici "

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1021
    Likes dati
    979

    Re: produzione file .txt

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    il file che produce ora è vuoto con solo le intestazioni di riga con gli apici "
    Non ho modificato la funzione normalizza. Modifica così:
    Codice: 
    Function Normalizza(s As String, k As Integer) As String
        s = s & String(k, " ")
        Normalizza = Left(s, k)
    End Function

  7. #7
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    159
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    35

    Re: produzione file .txt

    grazie! in verità ci ero già arrivato, lo stavo testando e funziona benissimo.
    se non mi mandi al diavolo ho un'ultima cosa da chiederti e poi è davvero perfetto: sono indispensabili gli apici prima ed alla fine di ogni stringa nel file txt?
    se la routine non funziona senza vedo di trovare un modo di rimuoverli in un secondo tempo.

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1021
    Likes dati
    979

    Re: produzione file .txt

    Altro metodo allora:
    Codice: 
    Private Sub ScriviFile()
    Dim Nome As String
    Dim iRow As Long
    Dim iCol As Long
    Dim uRiga As Long
    Dim myFile As String
    Dim Stringa As String
    Dim FileSystemObj As Object
    Dim TextStreamFileObj As Object
    
    
    ChDir Workbooks(1).Path
    Nome = InputBox("Inserire il nome del file da generare", "Crea file")
    myFile = ThisWorkbook.Path & "\" & Nome & ".txt"
    
    
    uRiga = Foglio1.Range("A" & Rows.Count).End(xlUp).Row
    
    
    Set FileSystemObj = CreateObject("Scripting.FileSystemObject")
    Set TextStreamFileObj = FileSystemObj.CreateTextFile(myFile, True)
    
    
    For iRow = 2 To uRiga
        Stringa = ""
        For iCol = 1 To 24
            Stringa = Stringa & Normalizza(Foglio1.Cells(iRow, iCol), Foglio1.Cells(1, iCol))
        Next
        TextStreamFileObj.writeline (Stringa)
    Next
    
    
    Set FileSystemObj = Nothing
    Set TextStreamFileObj = Nothing
    End Sub

  9. #9
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    159
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    35

    Re: produzione file .txt

    Meraviglioso! è perfetto.
    ti ringrazio infinitamente, soprattutto per la pazienza :32:

Discussioni Simili

  1. Copia Incolla su altro file senza portare i riferimenti del vecchio File
    Di CarloM nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 05/02/17, 18:36
  2. macro schede di produzione self service
    Di manu21 nel forum Domande su Excel VBA e MACRO
    Risposte: 0
    Ultimo Messaggio: 28/09/16, 22:03
  3. Gantt e Pianificazione della produzione
    Di Matis nel forum Domande sui Grafici di Excel
    Risposte: 7
    Ultimo Messaggio: 24/06/16, 09:44
  4. Pianificare la produzione
    Di Marcopre nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 01/03/16, 16:13
  5. Sommare produzione anno dopo aver definito mese da menu a tendina
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 17/11/15, 22:39

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •