VBA/excel macro per leggere un file csv

Creare una macro e inserire questo codice:

Dim FileDaLeggere As String
Dim riga As String

FileDaLeggere = “C:\temp\ciao.csv”

On Error Resume Next

Range(“A1”).Activate
row_number = 0
Open FileDaLeggere For Input As #1

Do Until EOF(1)
Line Input #1, riga
campi = Split(riga, “,”)
ActiveCell.Offset(row_number, 0).Value = Replace(campi(0), Chr(34), “”)
ActiveCell.Offset(row_number, 1).Value = Replace(campi(1), Chr(34), “”)
ActiveCell.Offset(row_number, 2).Value = Replace(campi(2), Chr(34), “”)
row_number = row_number + 1
Loop

Close #1

Sostituire FileDaLeggere con il file effettivo e campi(0) , campi(1) etc con il numero della colonna interessata.

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

VBA/excel macro per scrivere un file csv

Creare una nuova macro e inserire questo codice:

Dim FileDaScrivere As String
Dim campo As String
Dim rng As Range
Dim riga As Integer

FileDaScrivere = “C:\temp\ciao.csv”
Open FileDaScrivere For Output As #1

For riga = 1 To 10
campo = ActiveSheet.Range(“A” & riga)
Write #1, campo,
campo = ActiveSheet.Range(“B” & riga)
Write #1, campo,
campo = ActiveSheet.Range(“C” & riga)
Write #1, campo,
campo = ActiveSheet.Range(“D” & riga)
Write #1, campo
Next riga

Close #1

Cambiare il percorso di output e le colonne da scrivere (FileDaScrivere e ActiveSheet.Range).

 

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Compatibilità Macro Office/Openoffice/libreoffice

Segnalo questo post dove si spiega come rendere operative le macro di Microsoft Office sulla piattaforma OpenOffice/LibreOffice:

https://forum.openoffice.org/it/forum/viewtopic.php?f=6&t=1574

In breve vanno aggiunte le istruzioni in testa alla macro per renderle compatibili:

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1

Segnalo che macro complesse vanno riscritte nativamente

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Excel e VBA

Oggi ho dovuto scrivere delle macro in excel che scorrevano celle e impostavano vari calcoli. Ho riassunto alcune funzioni come promemoria, se avete bisogno o volete giocare con le macro:

  • Aprite excel
  • premete ALT+F8 per gestire le macro
  • Nuova Macro e inserite il codice seguente:

Dim sh As Worksheet

Dim lRiga As Long
Dim lCol As Long
Dim Contatore As Integer

Sheets(“Foglio1”).Select
Set sh = ThisWorkbook.Worksheets(“Foglio1”)

‘————————————–
Contatore = 0

With sh
 For lRiga = 1 To 5
  For lCol = 1 To 3
   ‘—– Test contenuto di una cella
   ‘ If .Cells(lRiga, lCol).Value = “www” Then
   ‘ Range(.Cells(lRiga, lCol).Address) = “TROVATO”
   ‘ End If
                    
   ‘—– Coordinate cella
   ‘ MsgBox “Coordinate cella –> ” + .Cells(lRiga, lCol).Address
                 
   ‘—– Imposto un Contatore
   Contatore = Contatore + 1
   ‘ MsgBox (“Contatore –> ” & Contatore)
                    
   ‘—– Visualizzo il Contenuto di una Cella
   MsgBox “Contenuto cella –> ” & .Cells(lRiga, lCol).Value
                    
   ‘—– Imposto il contenuto di una cella variabile
   ‘ Range(.Cells(lRiga, lCol).Address) = Contatore
                 
   ‘—– Imposto il contenuto della cella successiva
   ‘ Range(.Cells(lRiga, (lCol + 1)).Address) = “X”
                 
   ‘—– Imposto il contenuto della riga successiva
   ‘ Range(.Cells((lRiga + 1), lCol).Address) = “X”
                    
  Next
 Next
End With

Set sh = Nothing

‘ Determinare il numero righe esistenti
    
‘NumeroRighe = ContaRighe(“Tutti”, 1, 4)
MsgBox “Il numero dell’ ultima riga occupata nelle prime 4 colonne è :   ” & NumeroRighe
    
End Sub

Function ContaRighe(WS$, MinCol, MaxCol)

Dim Contatore
For COLONNA = MinCol To MaxCol
Ur = Worksheets(WS$).Cells(65536, COLONNA).End(xlUp).Row ‘ Ur = Ultima riga
valore = Worksheets(WS$).Cells(Ur, COLONNA).Value
If Contatore < Ur And valore <> “” Then
 Contatore = Ur
End If
Next COLONNA
ContaRighe = Contatore

End Function

Allego un foglio già pronto scaricabile da qui –> Prove_Excel

 

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Utilizzo i cookie per essere sicuro che tu possa avere la migliore esperienza sul mio sito. Se continui ad utilizzare questo sito assumo che tu ne sia felice.. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi