Condividi:        

Come copiare una riga in excel in un altro file usando macro

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Come copiare una riga in excel in un altro file usando macro

Postdi dani00 » 13/07/19 19:30

Ciao a tutti,
ho 2 file "a.xlsm" e "b.xlsm", in tanto l'unica cosa che mi serve è copiare la prima riga del primo file nella prima riga del secondo file in modo automatico; tutto ciò non avendo la possibilità di avere entrambi i file aperti, inoltre i file si trovano in directory diverse. Ho provato a guardare in internet ma non ho capito bene le funzioni da usare nel mio caso.

Grazie anticipato a coloro che potranno aiutarmi.
dani00
Newbie
 
Post: 4
Iscritto il: 13/07/19 19:13

Sponsor
 

Re: Come copiare una riga in excel in un altro file usando m

Postdi Anthony47 » 13/07/19 22:12

Prova a registrare una macro mentre esegui manualmente i comandi necessari per ottenere quello che hai descritto.
Tenendo presente che per incollare qualcosa nel file B questo deve essere aperto, le operazioni che dovrai eseguire dopo aver avviato la registrazione della macro sono:
-copiare la prima riga; aprire il file B, selezionare il foglio giusto, incollare nella posizione voluta; salvare il file B e chiuderlo; premere Esc. Fermare la registrazione macro

Se l'operazione da fare e' sempre la stessa (la stessa riga da copiare dallo stesso file; lo stesso file di destinazione, la stessa posizione in cui incollare) allora il codice ottenuto sara' sufficiente, nel senso che tutte le volte che esegui la macro avrai la copia desiderata.
Altrimenti devi pubblicare il codice ottenuto e descrivere piu' dettagliatamente che cosa va fatto.
In ogni caso pubblica il codice cosi' gli aggiungiamo qualche instruzione per rendere piu' "solido" il risultato.

Per le istruzioni e i primi suggerimenti su come registrare una macro:
viewtopic.php?f=26&t=103893&p=622593#p622593

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come copiare una riga in excel in un altro file usando m

Postdi dani00 » 14/07/19 09:35

Ciao e grazie per la risposta,
forse non mi sono spiegato bene, quello che hai detto di fare l'ho già provato e funziona, ma il problema è che mi serve un comando generico che mi permetta (all'interno di un ciclo for) di andare a copiare una determinata riga nel file a.xlsm e incollarlo nella prima riga disponibile in un altro file (fra 30 file) in base ad un valore presente nella colonna H; quindi non posso tenere aperto tutti i file di destinazione, esiste un altro modo che mi permetta di fare tutto ciò tenendo aperto SONO il file a.xlsm Dove faccio partire la macro?
dani00
Newbie
 
Post: 4
Iscritto il: 13/07/19 19:13

Re: Come copiare una riga in excel in un altro file usando m

Postdi wallace&gromit » 14/07/19 11:46

Ti consiglio 2 cose, rileggi il tuo primo post e poi il secondo e... trova le 20 differenze :-)
Se sei in grado di fare un ciclo for next sei senz'altro in grado di trovare nel forum esempi risolti con quello che chiedi, è una richiesta che è già comparsa x volte. Secondo me se trovi da te la soluzione la impari meglio.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Come copiare una riga in excel in un altro file usando m

Postdi dani00 » 14/07/19 12:27

Si scusa per le richieste differenti, nel primo post ho cercato di banalizzare il mio problema per capire come fare una cosa specifica ovvero:
1) partendo dal file "a.xlsm" nel "Foglio1" vorrei (con la macro) aprire il file "b.xlsm"
2) copiare una riga dal file "a.xlsm" nel "Foglio1"
3) incollare la riga nel file "b.xlsm" nel "Foglio1"
4) chiudere il file "b.xlsm"

E questo è ancora quello che cerco di fare...


Per fare tutto ciò ho già visto che si possono utilizzare funzioni di questo tipo:
Workbooks("a.xlsm").Worksheets("Foglio1").Range("A2:D9").Copy _
Workbooks("b.xlsm").Worksheets("Foglio1").Range("A2")
ma mi da errore dicendo che devo per forza avere aperti entrambi i file aperti.

Sto ancora cercando una soluzione per conto mio, ma se qualcuno mi riuscisse ad aiutare gliene sarei grato
dani00
Newbie
 
Post: 4
Iscritto il: 13/07/19 19:13

Re: Come copiare una riga in excel in un altro file usando m

Postdi wallace&gromit » 14/07/19 13:00

C'è anche una certa logica per la quale entrambi i file devono essere aperti : in uno vuoi incollare dei dati, nell'altro stai eseguendo una macro.
Ti butto là ancora due consigli, per incollare i dati usa il comando destination:=range dove incollare e per trovare dov'è l'ultima riga del file B usa qualcosa come UR = Cells(Rows.Count, 1).End(xlUp).Row
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Come copiare una riga in excel in un altro file usando m

Postdi Anthony47 » 14/07/19 13:03

Te l'ho detto io, te lo dice W&G, e te lo dice anche Excel: per incollare qualcosa nel file B questo deve risultare "aperto".

Se procedi con la registrazione macro come ti ho detto, con gli step che ti ho detto, e poi pubblichi il codice allora potremo modificarlo per adattarlo al tuo ragionamento.

Pero' la macro e' una sequenza di comandi ben definita che esegue una sequenza di operazioni ben definite: perche' la macro faccia quello che hai in mente allora bisogna creare un algoritmo adeguato.
Mi pare che il file B sia da scegliere tra quelli presenti in una certa directory. Invece come scegliere il record da copiare non l'hai detto; come scegliere il foglio (del file B) su cui copiare idem non l'hai detto; idem come scegliere la cella su cui incollare.
Con "come" intendo che devi descrivere la regola, non le istruzioni vba con cui questa regola va poi realizzata.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come copiare una riga in excel in un altro file usando m

Postdi dani00 » 14/07/19 13:32

Ciao
alla fine sono riuscito a trovare questo codice per conto mio e funziona:

Dim percorso
percorso="C:\Users\utente\Documents\b.xlsm"
Workbooks.Open (percorso)

Workbooks("a.xlsm").Worksheets("Foglio1").Range("A1:O1").Copy _
ActiveWorkbook.Worksheets("Foglio1").Range("A1")

ActiveWorkbook.Save
ActiveWorkbook.Close

Grazie comunque per i consigli, anche se non li ho trovati utilissimi, probabilmente perché non mi sono espresso bene, la prossima volta cercherò di essere più chiaro :)
dani00
Newbie
 
Post: 4
Iscritto il: 13/07/19 19:13

Re: Come copiare una riga in excel in un altro file usando m

Postdi wallace&gromit » 14/07/19 20:54

Se lo 00 del tuo nickname si riferisce all'anno di nascita ti scusiamo per la mancanza di esperienza dovuta alla giovane età, quindi sì, la prossima volta cerca di essere più chiaro e preciso dall'inizio. Magari alla fine la soluzione la trovi comunque da solo e sarà senz'altro la migliore, perché la capirai meglio anche in futuro. Sarebbe anche cortesia pubblicare il codice intero (se lo scrivi all'interno dei comandi "code" sulla pagina di pc-facile ne migliori la leggibilità), non gli spizzichi che hai messo tu, magari ti può arrivare ancora qualche consiglio utile lo stesso.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Come copiare una riga in excel in un altro file usando m

Postdi Anthony47 » 15/07/19 13:12

Se fa quello che volevi allora e' perfetto cosi'

Grazie comunque per i consigli, anche se non li ho trovati utilissimi, probabilmente perché non mi sono espresso bene
Evidentemente non ci siamo fatti capire nemmeno noi...
Alla prossima
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Come copiare una riga in excel in un altro file usando macro":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti