Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
L'unico inconveniente è che per ogni file analizzato (tra quelli che contengono i dati) mi chiede di salvare le modifiche.
Si può aggiungere una riga di codice che ometta la richiesta e la imposti su NO in automatico?
Un'ulteriore richiesta: è possibile inserire un controllo sul file di origine? ovvero se nella cella C15 trova la stringa "Prova a 0,05 m/s" procede con la copia dei dati, altrimenti salta il file.
Grazie ancora,
Francesco
P.S. essendo anche un utilizzatore di Access mi risulterebbe molto comodo imparare ad utilizzare VB. Consigli per una guida introduttiva? Access l'ho imparato dalla guida di office e mi sono trovato bene, c'è qualcosa di simile?
Se(se) ho capito:
Public Sub m()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim objSubfolder As Object
Dim colSubfolders As Object
Dim sh As Worksheet
Dim shMe As Worksheet
Dim wk As Workbook
Dim wkMe As Workbook
Dim lRiga As Long
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\ProvaX")
Set colSubfolders = objFolder.Subfolders
Set wkMe = ThisWorkbook
Set shMe = wkMe.Worksheets("Foglio1")
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
For Each objSubfolder In colSubfolders
For Each objFile In objSubfolder.Files
Set wk = Workbooks.Open(objSubfolder.Path & "" & objFile.Name)
Set sh = wk.Worksheets("Foglio1")
lRiga = shMe.Range("A" & shMe.Rows.Count).End(xlUp).Row + 1
If shMe.Range("C5").Value = "Prova a 0,05 m/s" Then
With sh
shMe.Range("A" & lRiga).Value = .Range("C8").Value
shMe.Range("B" & lRiga).Value = .Range("F17").Value
shMe.Range("C" & lRiga).Value = .Range("F21").Value
shMe.Range("D" & lRiga).Value = .Range("F25").Value
shMe.Range("E" & lRiga).Value = .Range("F29").Value
shMe.Range("F" & lRiga).Value = .Range("F33").Value
shMe.Range("G" & lRiga).Value = .Range("I17").Value
shMe.Range("H" & lRiga).Value = .Range("I21").Value
shMe.Range("I" & lRiga).Value = .Range("I25").Value
shMe.Range("J" & lRiga).Value = .Range("I29").Value
shMe.Range("K" & lRiga).Value = .Range("I33").Value
shMe.Range("L" & lRiga).Value = objSubfolder.Name
shMe.Range("M" & lRiga).Value = objFile.Name
End With
End If
wk.Save
wk.Close
Set sh = Nothing
Set wk = Nothing
Next
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
Set objSubfolder = Nothing
Set colSubfolders = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
Set shMe = Nothing
Set sh = Nothing
Set wk = Nothing
Set wkMe = Nothing
End Sub
Anche Excel ha la sua guida vb. La sintassi Visual Basic è sempre la stessa, quella che cambia è la libreria degli oggetti.
NOTA. Parte del codice utilizzato qui(leggere il file system di Windows) non è vb, ma vbscript.