Salve a tutti,
ho un problema con una sub su un pulsante di una maschera che ha il compito di: copiare un modello excel 2007, aprire il file excel, togliere la protezione del foglio, scrivere delle celle, ridare la protezione, rinominare il foglio,
collegarlo all'access 2007, e poi fare alcune operazioni sulla maschera da cui si è attivata la sub.
Premetto che sono alle prime armi con VBA.
Il problema in se è solo che tale operazione riesce solo alla creazione del primo file excel dalla maschera.
Quando creo un secondo file excel da errore di run-time 1004: Metodo 'worksheets' dell'oggetto '_global' non riuscito.
Penso il problema sia sulla rimozione password ma non ne vengo fuori.
Option Compare Database
Option Explicit
Dim oExcel As Object
Dim oWorkbook As Object
Dim oWorksheet As Object
Private Sub Comando29_Click()
Dim D As String
D = DCount("Name", "[BOM del PREV]") + 1
Dim SourceFile, DestinationFile
SourceFile = "C:\Documents and Settings...\nuovabomprev.xlsx"
DestinationFile = "c:\Documents and Settings...\P" & SelIDRegPrev & "-" & D & "-" & RevisBOMPrev & "-" & NomeArticolo & "-" & QuantitàArticolo & ".xlsx"
FileCopy SourceFile, DestinationFile
Set oExcel = CreateObject("Excel.Application")
Set oWorkbook = oExcel.Workbooks.Open("c:\Documents and Settings...\P" & SelIDRegPrev & "-" & D & "-" & RevisBOMPrev & "-" & NomeArticolo & "-" & QuantitàArticolo & ".xlsx", True, False)
oExcel.Visible = True
Set oWorksheet = oWorkbook.Worksheets("F1PREV")
Worksheets("F1PREV").Unprotect Password:="kiwi"
oWorksheet.Cells(2, 1).Value = "P" & SelIDRegPrev & "-" & D & "-" & RevisBOMPrev & "-" & NomeArticolo & "-" & QuantitàArticolo
oWorksheet.Cells(2, 2).Value = NomeArticolo
oWorksheet.Cells(2, 3).Value = QuantitàArticolo
Worksheets("F1PREV").Protect Password:="kiwi"
oWorksheet.Name = oWorksheet.Cells(2, 1).Value
oWorkbook.Save
DoCmd.TransferSpreadsheet acLink, 10, "P" & SelIDRegPrev & "-" & D & "-" & RevisBOMPrev & "-" & NomeArticolo & "-" & QuantitàArticolo, "c:\Documents and Settings...\P" & SelIDRegPrev & "-" & D & "-" & RevisBOMPrev & "-" & NomeArticolo & "-" & QuantitàArticolo
& ".xlsx", True, "A1:AZ500"
DoCmd.GoToControl "NomeArticolo"
DoCmd.RunCommand acCmdDelete
DoCmd.GoToControl "QuantitàArticolo"
DoCmd.RunCommand acCmdDelete
DoCmd.Requery "SelTabBOM"
DoCmd.Requery "ProgressBOMPrev"
end sub
Grazie ciao.