Creazione di un file csv per Ebay Scambio File



  • Creazione di un file csv per Ebay Scambio File
    di ipsoware (utente non iscritto) data: 20/07/2013 08:32:44

    Ciao a tutti ho questo problema non essendo in grado di creare una macro complessa in autonomia dovrei creare un file in formato csv secondo gli standard di Ebay.
    Ho un file di partenza anch'esso in formato csv che deve andare ad alimentare il file di Ebay.
    Secondo questi parametri.
    Nella colonna A del file Ebay.csv va inserito sempre il valore "Add"
    Nella colonna B del file Ebay.csv va inserito sempre il valore presente nella colonna H presente nel file Output_7.csv
    Nella colonna C del file Ebay.csv va inserito sempre il valore presente nella colonna B presente nel file Output_7.csv
    Nella colonna D del file Ebay.csv va inserito sempre il valore presente nella colonna C presente nel file Output_7.csv
    Nella colonna E del file Ebay.csv va inserito sempre il valore "1000"
    Nella colonna F del file Ebay.csv va inserito sempre il valore presente nella colonna S presente nel file Output_7.csv
    Nella colonna G del file Ebay.csv va inserito sempre il valore presente nella colonna N presente nel file Output_7.csv
    Nella colonna H del file Ebay.csv va inserito sempre il valore "FixedPriceItem"
    Nella colonna I del file Ebay.csv va inserito sempre il valore presente nella colonna I aggiungendo il 21%(iva) presente nel file Output_7.csv
    Nella colonna J del file Ebay.csv va inserito sempre il valore "GTC"
    Nella colonna K del file Ebay.csv va inserito sempre il valore "20123"
    Nella colonna L del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna M del file Ebay.csv va inserito sempre il valore "post-vendita@ipsoware.com"
    Nella colonna N del file Ebay.csv va inserito sempre il valore "3"
    Nella colonna O del file Ebay.csv va inserito sempre il valore "ReturnsAccepted"
    Colonna P vuota
    Nella colonna Q del file Ebay.csv va inserito sempre il valore "IT_ExpressCourier"
    Nella colonna R del file Ebay.csv va inserito sempre il valore "8"
    Nella colonna S del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna T del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna U del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna V del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna W del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna X del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna Y vuota
    Nella colonna Z vuota
    Nella colonna AA del file Ebay.csv va inserito sempre il valore "21"
    Nella colonna AB del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna AC del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna AD del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna AE del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna AF del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna AG del file Ebay.csv va inserito sempre il valore "Flat"
    Nella colonna AH del file Ebay.csv va inserito sempre il valore "-1"
    Nella colonna AI del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna AJ colonna vuota
    Nella colonna AK del file Ebay.csv va inserito sempre il valore "1|178397022|"
    Nella colonna AL del file Ebay.csv va inserito sempre il valore "0|178397022|"
    Nella colonna AM del file Ebay.csv va inserito sempre il valore "1"
    Nella colonna AN del file Ebay.csv va inserito sempre il valore "0"
    Nella colonna AO del file Ebay.csv va inserito sempre il valore "0"
    Inoltre va effettuato un controllo del numero dei caratteri presente nella colonna C del file Ebay.csv nel caso in cui eccedesse al 80 caratteri il testo va troncato.
    Vi allego i files.

    Grazie per l'aiuto



  • di HarryBosch data: 21/07/2013 13:05:09

    Ciao Ipsoware
    non capisco una cosa: il file da caricare è in formato .csv con tutti gli standar vari per la formattazione delle colonne e va bene.
    Ma perché il file di partenza deve essere un file .csv? Anche perché se vuoi creare una macro serve comunque un formato supportato, tipo .xls o .xlsm.
    In un file di testo (csv), perché di questo si tratta (più o meno), non possiamo creare macro.

    Eventualmente, se proprio il file di origine deve essere .csv, si può creare un componente aggiuntivo per Excel.
    Quale versione Office utilizzi?



  • di ipsoware data: 21/07/2013 23:31:04

    Ho scelto il formato csv perchè puó accadere che il file superi le 65.000 righe. Comunque non ci sono problemi posso partire anche da un formato xls. La versione di Office è 2010.
    Grazie



  • di HarryBosch data: 22/07/2013 10:31:57

    Dalla versione 2007 il limite di righe per Excel è di 1.048.576 ^_^
    Ho preparato un file di esempio secondo le indicazioni che hai riportato; verificalo bene e fai sapere...




  • di Raffaele_53 (utente non iscritto) data: 22/07/2013 12:20:34

    Chiedo scusa se mi intrometto (un qualcosa di mio non quadra).
    Non conosco bene i CSV per come debbano essere strutturati (Nella cella Output_7!D1249 ci sono 22755 caratteri???).
    Ieri ho provato e alla fine non ci riuscivo perchè nel salvarlo tramite VBA mi metteva tutte le colonne in A divisi dal "," (non ricordo forse ";")
    Manualmente l'ho salvava nelle colonne come da esempio correttamente (alcune volte Excel s'impalla).
    Se mi dite dove sbaglio.
    Grazie mille
     
    Option Explicit
    Sub CreaCSV3()
    Dim W1 As ThisWorkbook
    Dim W2 As Workbook
    Dim F1 As Worksheet
    Dim F2 As Worksheet
    Dim R, X As Long, Files, fpath, fname, uriga, uriga1
    Application.ScreenUpdating = False
    Set F1 = Sheets("Output_7")
    fpath = ThisWorkbook.Path
    fname = "Ebay-" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) '& ".csv"
    Files = fpath & "" & "Ebay.csv"
    Workbooks.Open Filename:=Files
    Set F2 = Sheets("Ebay")
    uriga = F1.Range("A" & Rows.Count).End(xlUp).Row
    uriga1 = F2.Range("A" & Rows.Count).End(xlUp).Row
        If uriga1 <> 1 Then
            F2.Range(F2.Cells(2, 1), F2.Cells(uriga1, 42)).ClearContents
        End If
    R = 2
    For X = 2 To 5 'uriga
        F2.Cells(R, 1) = "Add"
        F2.Cells(R, 2) = F1.Cells(R, 8)
            If Len(F1.Cells(R, 2)) > 80 Then
                F2.Cells(R, 3) = Left(F1.Cells(R, 2), 80)
            Else
                F2.Cells(R, 3) = F1.Cells(R, 2)
            End If
        F2.Cells(R, 4) = F1.Cells(R, 3)
        F2.Cells(R, 5) = "1000"
        F2.Cells(R, 6) = F1.Cells(R, 19)
        F2.Cells(R, 7) = F1.Cells(R, 14)
        F2.Cells(R, 8) = "FixedPriceItem"
        F2.Cells(R, 9) = F1.Cells(R, 9) + (F1.Cells(R, 9) * 21) / 100
        F2.Cells(R, 10) = "GTC"
        F2.Cells(R, 11) = "20123"
        F2.Cells(R, 12) = "1"
        F2.Cells(R, 13) = "post-vendita@ipsoware.com"
        F2.Cells(R, 14) = "3"
        F2.Cells(R, 15) = "ReturnsAccepted"
        
        F2.Cells(R, 17) = "IT_ExpressCourier"
        F2.Cells(R, 18) = "8"
        F2.Cells(R, 19) = "1"
        F2.Cells(R, 20) = "1"
        F2.Cells(R, 21) = "0"
        F2.Cells(R, 22) = "0"
        F2.Cells(R, 23) = "0"
        F2.Cells(R, 24) = "0"
        
        F2.Cells(R, 27) = "21"
        F2.Cells(R, 28) = "0"
        F2.Cells(R, 29) = "1"
        F2.Cells(R, 30) = "1"
        F2.Cells(R, 31) = "1"
        F2.Cells(R, 32) = "0"
        F2.Cells(R, 33) = "Flat"
        F2.Cells(R, 34) = "-1"
        F2.Cells(R, 35) = "0"
        
        F2.Cells(R, 37) = "1|178397022|"
        F2.Cells(R, 38) = "0|178397022|"
        F2.Cells(R, 39) = "1"
        F2.Cells(R, 40) = "0"
        F2.Cells(R, 41) = "0"
        R = R + 1
    Next X
        'ActiveWorkbook.Save 'As 'Filename:=fpath & "" & fname, FileFormat:=xlCSV, CreateBackup:=False
        'ActiveWindow.Close
    Application.ScreenUpdating = True
    Set F1 = Nothing
    Set F2 = Nothing
    
    MsgBox ("Salvare il files Ebay.csv MANUALMENTE")
    End Sub
    



  • di HarryBosch data: 22/07/2013 20:44:31

    In fin dei conti il formato csv è un file di testo con i campi separati da un apposito carattere, e quindi il fatto che i dati vengano riportatati lungo la prima colonna A va bene (sono tutte righe di dati).
    Il fatto che su Excel si possa visualizzare tale formato suddiviso nella colonne è pura estetica. Eventualmente, se il caricamento nel database non funzionasse correttamente, si può ricorrere al "testo in colonna" (sempre via codice), ma non credo visto che la richiesta di tale formato è specifica.
    Anche perché sempre proprio che la conversione del formato via codice, non supporti la divisione in colonne; cosa che invece si ottiene eseguendo il salvataggio manualmente (ma non ci metterei la mano sul fuoco ^_^)

    Non essendo anch'io un utilizzatore di csv, attendo il parere del sicuramente più informato Ipsoware :)