ho creato questa macro che se lanciata dalla cartella di lavoro funziona alla perfezione ma se copiata in un modulo in personal non funziona più.
Ovviamente il problema è di fargli "riconoscere" gli activeworkbook e l'altro da cui prelevare i dati... il problema è che non riesco a trovare la soluzione!!!
- Codice: Seleziona tutto
Sub certificatiok()
Dim Cell
Dim X As String
Dim percorso As String, nome As String, nomecompleto As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveSheet.Range("A13:P130").Select
Range("A13:P130").Activate
ActiveSheet.Range("$A$13:$P$130").AutoFilter Field:=1, Criteria1:="<>", Operator:=xlFilterValues
For Each Cell In Range("o14:O130").SpecialCells(xlCellTypeVisible)
X = "C:\Documents and Settings\fgiudice\Desktop\MASTERS\" & (Cell.Value) & ".xlsx"
Workbooks.Open Filename:=X, ReadOnly:=False
ActiveWorkbook.Sheets("Foglio1").Cells(5, 3) = Foglio1.Cells(4, 2)
ActiveWorkbook.Sheets("Foglio1").Cells(5, 4) = Foglio1.Cells(6, 2)
ActiveWorkbook.Sheets("Foglio1").Cells(5, 9) = Foglio1.Cells(7, 2) & " " & Foglio1.Cells(8, 2)
ActiveWorkbook.Sheets("Foglio1").Cells(54, 10) = Foglio1.Cells(2, 5)
ActiveWorkbook.Sheets("Foglio1").Cells(9, 3) = Foglio1.Cells(Cell.Row, 2)
ActiveWorkbook.Sheets("Foglio1").Cells(9, 4) = Foglio1.Cells(Cell.Row, 5)
ActiveWorkbook.Sheets("Foglio1").Cells(9, 7) = Foglio1.Cells(Cell.Row, 6)
ActiveWorkbook.Sheets("Foglio1").Cells(9, 9) = Foglio1.Cells(Cell.Row, 8)
ActiveWorkbook.Sheets("Foglio1").Cells(9, 10) = Foglio1.Cells(Cell.Row, 7)
ActiveWorkbook.Sheets("Foglio1").Cells(11, 3) = Foglio1.Cells(Cell.Row, 11)
ActiveWorkbook.Sheets("Foglio1").Cells(11, 7) = Foglio1.Cells(Cell.Row, 13)
ActiveWorkbook.Sheets("Foglio1").Cells(2, 11) = Foglio1.Cells(Cell.Row, 16)
percorso = ActiveWorkbook.Path & "\"
nome = (Cell.Value) & "_" & ActiveWorkbook.Sheets("Foglio1").Cells(9, 9).Value & ".xlsx"
nomecompleto = percorso & nome
ActiveWorkbook.SaveAs Filename:=nomecompleto
ActiveWorkbook.Close
Next Cell
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Grazie a chi vorrà aiutarmi a rendere utilizzabile la macro da ogni scheda aperta!!