› Sviluppare funzionalita su Microsoft Office con VBA › Modifica Indirizzo File
-
AutoreArticoli
-
Ciao a tutti, avrei bisogno di una mano, attualmente ho questo codice che funziona alla perfezione, dovrei modificare il foglio in cui viene eseguita l'operazione.
Al momento viene eseguita in un altro file ( Elenco ordini aperti) nel foglio " Neri"
Vorrei che l'operazione venga eseguita nel Foglio "elenco ordini" all'interno della stessa cartella.
Ho provato a rimuovere
sFile = "/Users/alessio/Library/CloudStorage/GoogleDrive-garuttialessio@gmail.com/Il mio Drive/A.M.G. S.r.l.s./Produzione *GD*/Elenco Ordini Aperti.xlsx"
e sostituirlo con il foglio corretto ma non funziona
Private Sub EsportaDati() Dim wb As Workbook Dim wsMR As Worksheet Dim sFile As String Dim arr As Variant Dim i As Byte Dim urNR As Long Application.ScreenUpdating = False sFile = "/Users/alessio/Library/CloudStorage/GoogleDrive-garuttialessio@gmail.com/Il mio Drive/A.M.G. S.r.l.s./Produzione *GD*/Elenco Ordini Aperti.xlsx" Set wsMR = ThisWorkbook.Worksheets("MASCHERA RICERCA") arr = Array("D2", "E2", "G11", "K26", "K35", "K6", "K8", "M37") Set wb = Workbooks.Open(sFile) With wb.Sheets("Neri") urNR = .Cells(Rows.Count, "A").End(xlUp).Row For i = LBound(arr) To UBound(arr) .Cells(urNR + 1, i + 1).Value = wsMR.Range(arr(i)).Value Next i .Range("A" & urNR + 1 & ":" & "H" & urNR + 1).Borders.LineStyle = xlContinuous Columns("H").NumberFormat = "d-mmm" With Columns("A:H") .Font.Name = "Calibri" .Font.Size = 10 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End With wb.Save wb.Close Application.ScreenUpdating = True Set wb = Nothing: Set wsMR = Nothing End SubCi sono davvero degli asterischi nel nome della cartella (sFile)? In Windows?
sFile = "/Users/alessio/Library/CloudStorage/GoogleDrive-garuttialessio@gmail.com/Il mio Drive/A.M.G. S.r.l.s./Produzione *GD*/Elenco Ordini Aperti.xlsx"
Comunque se il foglio Elenco Ordini è nello stesso file Elenco Ordini Aperti l'istruzione da modificare è quella che attirbuisce all'oggetto wb il nome del foglio:
With wb.Sheets("Neri")diventa
With wb.Sheets("Elenco Ordini")Si gli asterischi ci sono, Comunque forse mi sono spiegato male, il foglio "Elenco Ordini" non è nello stesso foglio in cui c'è il foglio "Neri" ma nello stesso foglio in cui è presente la macro ( che si chiama Algoritmo Calcolo )
Ho provato a modificare il codice in autonomia e sembra funzionare, potete guardare se secondo voi c'è qualche errore?
Private Sub EsportaDati() Dim wsMR As Worksheet Dim arr As Variant Dim i As Byte Dim urNR As Long Application.ScreenUpdating = False Set wsMR = ThisWorkbook.Worksheets("MASCHERA RICERCA") arr = Array("D2", "E2", "G11", "K26", "K35", "K6", "K8", "M37") With Sheets("Elenco Ordini") urNR = .Cells(Rows.Count, "A").End(xlUp).Row For i = LBound(arr) To UBound(arr) .Cells(urNR + 1, i + 1).Value = wsMR.Range(arr(i)).Value Next i .Range("A" & urNR + 1 & ":" & "H" & urNR + 1).Borders.LineStyle = xlContinuous Columns("H").NumberFormat = "d-mmm" With Columns("A:H") .Font.Name = "Calibri" .Font.Size = 10 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End With Application.ScreenUpdating = True Set wb = Nothing: Set wsMR = Nothing End Subpotete guardare se secondo voi c'è qualche errore?
A prima vista non sembra, del resto se puoi provarlo sul campo ottieni la risposta migliore.
Quanto a questo:
Si gli asterischi ci sono
Non e' possibile. Windows non accetta asterischi nei nomi di file.
Non so se sia perché il file è su google drive, o perché uso un Mac, però ha sempre funzionato alla grande, e ti confermo che il nuovo codice funziona...
o perché uso un Mac
Lo avevo sospettato
ti confermo che il nuovo codice funziona...
Ottimo!
-
AutoreArticoli
