› Sviluppare funzionalita su Microsoft Office con VBA › Popolamento Database tramite codice
-
AutoreArticoli
-
che peccato! Funzionava alla grande. Va be' appena riesco ritorno al metodo Workbooks.Open...ti aggiorno Tutta esperienza per Alexps81
Ciao @Ale.1989,
Non ti preoccupare, anzi (come dice VF)...tutta esperienza.
ti rigiro i file aggiornati. Ricordati di modificare questa stringa:
sFile = ThisWorkbook.Path & "\Elenco-Ordini-Aperti.xlsx"indicando quindi il percorso dove risiede il file Elenco-Ordini-Aperti.xlsx
Fammi sapere se ci sono problemi.
Allegati:
You must be logged in to view attached files.Ciao Alex, funziona tutto alla grande, ma quando premo aggiorna ordine rame mi esce errore 9 se faccio debug evidenzia questa riga
Sheets("Neri").Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
se torno sul primo foglio e ripremo lo stesso pulsante non mi da nessun errore
non capisco come possa funzionare se prima da errorePerò da quello che ho visto il file elenco ordini aperti viene aggiornato anche se da errore....
Che strano...a me funziona bene. Speriamo che non sia un altro problema legato alla versione MAC. Cmq che descrizione ti dà dell'errore? Errore nr. 9 ..............
Al momento non dà più alcun errore, continuo ad utilizzarlo e poi ti aggiorno per il momento ti ringrazio molto
giusto per info mi esce indice fuori misura collegato all'errore 9....
Non me lo da sempre.... solo ogni tanto....
Non me lo da sempre.... solo ogni tanto....
Sempre sulla stessa riga di codice? Il foglio "Neri" esiste ed è scritto così? Ci sono componenti aggiuntivi aperti?
No non ho nessun componente aggiuntivo, il foglio si chiama così.... Non mi spiego perché ogni tanto funziona ed ogni tanto no ...
Che strana sta cosa! Facciamo un tentativo....sostituisci tutta la Sub EsportaDati con questa modificata e vediamo se risolviamo:
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 = ThisWorkbook.Path & "\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 .Columns("H").NumberFormat = "d-mmm" With .Columns("A:H") .Font.Name = "Calibri" .Font.Size = 10 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With .Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous End With wb.Save wb.Close Application.ScreenUpdating = True Set wb = Nothing: Set wsMR = Nothing End SubAggiornamenti, ho provato a immettere il codice che Mi hai indicato, se metto quello l'errore che compare è
" errore di compilazione
incongruenza di tipo"
Se continuo a lavorare con il vecchio codice funziona ma ogni 2 o 3 volte che premo mi esce l'errore 9 e se vado in debuggo evidenzia sempre la riga
Sheets("Neri").Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
C'è da dire che nonostante questo errore il file Elenco Ordini Aperti viene comunque aggiornato.
Ciao a tutti
Mah...
è proprio una cosa stranissima. I due codici alla fine sono identici solo che nel secondo i riferimenti al foglio Sheets("Neri") non li ripeto ma li lascio gestire all'istruzione With wb.Sheets("Neri") messa in monte del trasferimento dei dati...tutto qua.Per l'altra errore sulla linea di codice: Sheets("Neri").Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
rimane un mistero pure questo.
Alla fine quel trafiletto di codice non fa altro che applicare il bordo a tutte le celle circostanti alla cella A1 del foglio Neri.
In pratica andando ad inserire dei nuovi dati, poi viene applicato il bordo. A questo punto prova a toglierla quella linea di codice e vediamo se risolviamo. Tutt'al più o ti tieni i nuovi inserimenti senza bordo, oppure potresti prima applicare il bordo a tutte le colonne interessate (operazione da fare una sola volta).
Giusto per capire se è veramente quello il problema oppure risiede altrove.
Magari prova a fare questa ulteriore prova. Togli quella parte di codice Sheets("Neri").Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous e aggiungi queste:
.Range("A" & urNR + 1 & ":" & "H" & urNR + 1).Borders.LineStyle = xlContinuoussubito dopo il ciclo
For i = LBound(arr) To UBound(arr) .Cells(urNR + 1, i + 1).Value = wsMR.Range(arr(i)).Value Next ie prima di Columns("H").......
Vedi se così ti crea problemi.
-
AutoreArticoli
