evito di dirti che sei un fenomeno.
adesso va tutto, solo che ho un problema: l'ho provato e compilava perfettamente tutto, ma poi ho inserito nel file archivio.xls delle pagine riepilogative per mesi con dei grafici che leggevano i dati dal "foglio1" e il codice non andava più, o meglio partiva a scrivere i dati dalle caselle a367:i367, praticamente dalle celle non considerate dai grafici delle altre pagine,e se eventualmente lo riaggiorno cliccando sul pulsante mi scrive il tutto dopo la sequenza di dati già scritti, in breve non rinizia dalla riga 2 del Foglio1.
Cosa può essere? un conflitto tra i grafici e la macro?
....se puoi aiutarmi come al solito data la mia ignoranza...
ti riposto il codice per sicurezza(ho solo aggiunto tutte le variabili mesi)
-----------------
Private Function LeggiValore(percorsoWBook As String, nomeWBook As String, nomeWSheet As String, indirizzo As String) As Variant
Dim strMacro As String
strMacro = "'" & percorsoWBook & "[" & nomeWBook & "]" & nomeWSheet & "'!" & Range(indirizzo).Address(True, True, xlR1C1)
LeggiValore = ExecuteExcel4Macro(strMacro)
End Function
-----------------
Private Function UltimaRigaUtile(nomeFoglio As String) As Long
Dim UR As Long
If WorksheetFunction.CountA(Worksheets(nomeFoglio).Cells) > 0 Then
UR = Worksheets(nomeFoglio).Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
UltimaRigaUtile = UR
Else
UltimaRigaUtile = 1
End If
End Function
Sub Macro1()
Columns("A:H").ClearContents
Dim cartellaRoot As String
cartellaRoot = ThisWorkbook.Path & "\"
Dim cartellaMese As String
Dim arrayMesi() As Variant
arrayMesi = Array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre")
Dim nomeFileGiorno As String
Dim nomeFoglioGiorno As String
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim numRiga As Long
Application.ScreenUpdating = False
For i = 0 To UBound(arrayMesi)
cartellaMese = arrayMesi(i)
For j = 1 To 31
numRiga = UltimaRigaUtile("Foglio1") + 1
nomeFileGiorno = j & ".xls"
If Len(CStr(j)) = 1 Then
nomeFoglioGiorno = "0" & j
Else
nomeFoglioGiorno = j
End If
If Dir(cartellaRoot & cartellaMese & "\" & nomeFileGiorno) <> "" Then
For k = 1 To 8
Cells(numRiga, k).FormulaR1C1 = LeggiValore(cartellaRoot & cartellaMese & "\", nomeFileGiorno, nomeFoglioGiorno, "B" & (k + 2))
Next k
Range("I" & numRiga).FormulaR1C1 = LeggiValore(cartellaRoot & cartellaMese & "\", nomeFileGiorno, nomeFoglioGiorno, "A2")
End If
Next j
Next i
Application.ScreenUpdating = True
MsgBox "FATTO.

"
End Sub