View Single Post
Old 26-12-2009, 15:51   #9
luana76
Junior Member
 
Iscritto dal: Dec 2009
Messaggi: 5
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
luana76 è offline   Rispondi citando il messaggio o parte di esso