› Excel e gli applicativi Microsoft Office › Copia/incolla righe di numero variabile su secondo file
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
-
AutoreArticoli
-
Ciao a tutti,eccomi con un altra richiesta verso voi esperti! Ho un file, "copiafile1", dove nella cartella "stroke" scansiono i prodotti. Tutti i prodotti scansionati, vengono incollati dalla riga 10 del "Foglio1". Viene inserita una riga e incollato il prodotto.A fine della mia registrazione, avrò una lista di prodotti (in questo esempio 6), ma potrebbero essere anche 10, o 100, o 9 righe.Ho inserito nella cella B6 una somma, che conta quante righe/prodotti ci sono.Questi prodotti, partendo da "stroke" io con una macro "Copia", copio quelle righe, e le incollo su un altro file "Copiafile2.xls". Una volta copiate, il file secondo file viene salvato, mentre quello originale lo chiudo senza salvare (così tornerà vergine per le registrazioni successive). Chiaramente quando incollo nuovi malori, quelli incollati precedentemente, scendono e non vengono sovrascritti. Di seguito avete il codice che ho creato:
Public Sub copia() 'dichiaro le variabili Dim wk1 As Workbook Dim wk2 As Workbook Dim sh1 As Worksheet Dim sh2 As Worksheet Dim miaDir 'gestione errori On Error GoTo RigaErrore Application.ScreenUpdating = False 'metto i riferimenti ai files miaDir = "O:\Neuroradiologia\Sala Angio\Altro\prove" Set wk1 = ThisWorkbook Set wk2 = Workbooks.Open(miaDir & "/" & "Copiafile2.xls") 'metto i riferimenti ai fogli Set sh1 = wk1.Worksheets("Foglio1") Set sh2 = wk2.Worksheets("Foglio2") With sh1 'copio i dati da un file all'altro sh1.Rows("10:15").Copy sh2.Rows("10:10").Insert Shift:=xlDown End With Application.CutCopyMode = False 'salvo le modifiche al file FileDue.xls wk2.Save 'chiudo il file FileDue.xls wk2.Close Application.ScreenUpdating = True 'riga sempre eseguita RigaChiusura: 'Set a Nothing delle variabili oggetto Set sh2 = Nothing Set sh1 = Nothing Set wk1 = Nothing Set wk2 = Nothing Exit Sub 'in caso di errore RigaErrore: MsgBox Err.Number & vbNewLine & Err.Description Resume RigaChiusura End SubIl problema nasce, adesso: voglio rendere variabile il numero di righe in "Foglio1", cioè se sono stati scansionati 6 prodotti copia e incolla 6 prodotti.... se però sono 10, deve copiare 10 e incollare 10... o se sono 100... devono essere 100...Come posso modificare la parte scritta che è fissa... renderla variabile in base a quello che è scritto in B6 (numero di righe):With sh1
'copio i dati da un file all'altro
sh1.Rows("10:15").Copy
sh2.Rows("10:10").Insert Shift:=xlDownEnd WithApplication.CutCopyMode = FalseMi scuso, per complicarvi la vita... ma spero che riuscite a trovare una soluzione e come sempre vi ringrazio anticipatamente.salutiMarcoAllegati:
You must be logged in to view attached files.devi calcolare l'ultima riga occupata conLastRow = Cells(Rows.Count, "A").End(xlUp).Rowe quindi inserire questo nel range da copiareciao Patel,scusami la mia ignoranza... quindi devo inserire il tuo codice in questo modo?dove l'inserisco nel codice completo? così? ti ringrazio per il tuo prezioso aiuto!With sh1 'copio i dati da un file all'altro' sh1.Rows("10:15").Copy LastRow = Cells(Rows.Count, “A”).End(xlUp).Row sh2.Rows("10:10").Insert Shift:=xlDownciao Patel,scusami la mia ignoranza… quindi devo inserire il tuo codice in questo modo?dove l’inserisco nel codice completo? così?With sh1
sh1.Rows("10:15").Copy
LastRow = Cells(Rows.Count, “A”).End(xlUp).Row
sh2.Rows("10:10").Insert Shift:=xlDownquindi non serve avere nel primo file (Copiafile1), nel foglio1 in B6 un conteggio delle righe? conta direttamente la linea A? dovrà partire a contare le righe solo dalla 10 in giù. sopra no.ringrazio davvero e vi auguro una buona giornatabuona sera a tutti,volevo comunicarvi che ho risolto in questo modo, più semplice. Per chi fosse interessato, lascio il codice:With sh1 'copio i dati da un file all'altro variabile = sh1.Range("b6") sh1.Rows("10:" & variabile).Copy sh2.Rows("14:14").Insert Shift:=xlDown End Withringrazio tutti per l'aiutoalla prossimaMarcoil with non ti serve, basta fare così'copio i dati da un file all'altroLastRow = Sh1.Cells(Rows.Count, “A”).End(xlUp).Rowsh1.Rows("10:" &LastRow).Copysh2.Rows("14:14").Insert Shift:=xlDowngrande Patel!grazie mille dell'aiuto.alla prossimaMarco -
AutoreArticoli
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
