Condividi:        

Macro Excel modifica CSV

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

Macro Excel modifica CSV

Postdi ceciliaga » 03/02/15 08:56

Buongiorno agli utenti del forum,

mi presento, Cecilia, 24 anni da Modena. Lavoro come segretaria presso una ditta di import/export e sono qui proprio a causa del mio lavoro. Mi è stato chiesto di creare una Macro Excel (semplicissima a sentire il parere di chi me la ha commissionata), peccato che dopo un week end di lavoro non abbia ancora combinato nulla. Non avendo mai utilizzato tale programmazione non so proprio da dove cominciare ad essere sincera. Chiedo perciò l'aiuto di chi più esperto di me sul forum.

A partire dal file CSV disponibile a questo link:

http://www.wetransfer.com/downloads/91a ... 910/bebce8

Ecco la descrizione di cosa dovrebbe fare la macro:

-separare i dati in colonne utilizzando il separatore virgola. Il numero delle righe del file non è conosciuto a priori e pertanto la macro deve riconoscere quante righe ci sono in modo automatico.
-a partire dalla colonna B e per tutte le colonne, sostituire il numero "1" al valore "true" e il numero "0" al valore "false".
-a partire dalla colonna B e per tutte le colonne: colonna per colonna si scorrono le righe. Finche si incontra "nan" si deve sostituire con una casella vuota. Quando in una colonna si incontra un valore valido tale valore viene copiato nelle celle sottostanti al posto del "nan" fino a che non si incontra un altro valore valido. A questo punto questo ultimo valore valido verrà copiato nell celle sottostanti al posto del "nan"....e cosi via.

Per fare un esempio:

la colonna B alla fine della macro deve risultare cosi:

B2 vuoto (poichè nan e prima di tale nan non erano presenti validi valori)
B3 fino a B7 = 1.3 (cioè 1.3 e stato copiato in tutte le sottostanti nan)
B8 fino a B16 = 1.2 (cioè 1.2 e stato copiato in tutte le sottostanti nan)

la colonna D alla fine della macro deve risultare cosi:

B2 fino a B3 = 89.4 (cioè 89.4 e stato copiato in tutte le sottostanti nan)
B4 = 89.3
B5 = 89.4
B6 = 89.2
B7 fino a B8 = 89.5 (cioè 89.5 e stato copiato in tutte le sottostanti nan)

Grazie in anticipo a chi saprà aiutarmi.
ceciliaga
Newbie
 
Post: 1
Iscritto il: 03/02/15 08:52

Sponsor
 

Re: Macro Excel modifica CSV

Postdi Anthony47 » 03/02/15 13:19

Per quello che ho capito:
Crea un file vuoto e inseriscici questa macro:
Codice: Seleziona tutto
Sub Macro1()
'
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        DecimalSeparator:=".", ThousandsSeparator:=" ", TrailingMinusNumbers:= _
        True
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:E").Select
    Selection.Replace What:="true", Replacement:="1", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="false", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("B1").Select

lastr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To 5
    def = ""
    For j = 2 To lastr
        If Cells(j, i) = "nan" Then Cells(j, i) = def Else def = Cells(j, i)
       
    Next j
Next i
End Sub

Da excel: Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx.

Torna su excel e apri il tuo file csv

Lancia quindi la macro:
-da excel, Alt-F8 per visualizzare l' elenco delle macro disponibili; seleziona Macro1 e premi Esegui.

Fai sapere se e' quanto chiedevi.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro Excel modifica CSV

Postdi gepi56 » 12/11/16 18:47

Buonasera agli utenti del forum,

sono nuovo su questo fantastico forum.
spero di non aprire un argomento già affrontato e che sia la pagina giusta per porre la richiesta.

Avrei bisogno di una macro, che trasformi i file csv in file excel convertendo le colonne dei valori prezzo in . per i decimali e in virgola per le migliaia o viceversa e separi l’ora dalla data. Potete aiutarmi.

come nell'esempio di seguito

Time Type Volume Symbol Price S/L T/P Time Price Commission Swap Profit Comment
2016.11.09 15:54:02 Buy 0.29 EURUSD 109.331 109.512 2016.11.09 16:00:14 109.512 52.49 [tp]

Time Type Volume Symbol Price S/L T/P Time Price Commission Swap Profit Comment
2016.11.09 15:54:02 Buy 0.29 EURUSD 1.09331 1.09512 2016.11.09 16:00:14 1.09512 52.49 [tp]

Grazie
gepi56
Newbie
 
Post: 4
Iscritto il: 12/11/16 18:16

Re: Macro Excel modifica CSV

Postdi Anthony47 » 14/11/16 01:59

Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro Excel modifica CSV":


Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti