Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Aiuto per una 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

Aiuto per una macro

Postdi sephiroth978 » 23/08/13 10:04

Buongiorno a tutti. Ho bisogno di una mano per realizzare una macro.

In una cartella ho un centinaio di file identici come struttura, ma che rappresentano ognuno un prodotto diverso, chiamati nomericetta.xlsx

Devo prendere i dati di produzioni distribuiti all'interno dei fogli e copiarli su un foglio riassuntivo, dove vado io a inserire i nella prima colonna il nome della ricetta.

la macro deve quindi leggere il nome della ricetta, aprire il file corrispondente, copiare i dati e poi passare allla casella successiva, fino all'ultima casella piena.

Per aprire il file corrispondente ho utilizzato questa macro,

Public Sub mApriFile()


Dim sh As Worksheet
Dim wrk As Workbook
Dim sPath As String
Dim sNomeFile As String
Dim lRisposta As Long
sPath = "D:\Documents and Settings\ ... \Ricette\NDF\801\"
Set sh = Worksheets("Base NK 801")
With sh
sNomeFile = .Range("B3").Value & ".xlsx"
Workbooks.Open (sPath & sNomeFile)


End With

End Sub


ma non so intanto come copiare tutti i dati perche passo dal mio foglio riiassuntivo al foglio aperto con il comando

sNomeFile = .Range("B3").Value & ".xlsx"
Workbooks.Open (sPath & sNomeFile)

piu volte.

Grazie per il vostro aiuto.
sephiroth978
Newbie
 
Post: 3
Iscritto il: 23/08/13 09:18

Sponsor
 

Re: Aiuto per una macro

Postdi Anthony47 » 23/08/13 21:47

Ciao sephiroth978, benvenuto nel forum.
Mi pare che la domanda sia "come faccio a copiare dal file che apro e incollare accodando al foglio "Riassunto" del file che contiene la macro.
1- Dopo al Workbooks.Open (sPath & sNomeFile) il nuovo file e' attivo.
2- Potrai quindi copiare il contenuto del foglio che ti interessa (probabilmente sara' sufficiente qualcosa come Sheets("QualeFoglio").UsedRange.Copy )
3- Per accodare a quanto gia' presente sul foglio "Riepilogo", aggiungerai l' argomento Destination in questo formato
Sheets("QualeFoglio").UsedRange.Copy Destination:=ThisWorkbook.Sheets("Riepilogo").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)

L' istruzione determina quale e' l' ultima riga occupata su Riepilogo in base al contenuto della colonna A; se questa colonna non e' sempre occupata (fina all' ultima riga) dovrai trovare un' altra regola (ad esempio sfruttando UsedRange, oppure CurrentRegion)
4- Chiudi il file aperto transitoriamente con
ActiveWorkbook.Close SaveChanges:=False

A questo punto la gestione del file e' completa e puoi passare al file successivo, dove ripeterai gli stessi step.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Aiuto per una macro

Postdi sephiroth978 » 26/08/13 12:51

Ciao anthony, grazie per la risposta...

il mio problema è che la mia macro alpre un file excel corrispondente copia una casella sul foglio riepilogo poi ritorna sul file aperto con il comando


sNomeFile = .Range("B3").Value & ".xlsx"
Workbooks.Open (sPath & sNomeFile)

quindi ne consegue che nella casella b3 oggi ci possa essere un file, per esempio A.xlsx, ma domani posso aggiornarlo e nella casella b3 ci puo essere T.xlsx

Dunque non posso scrivere io il file da aprire ma per passare dal file aperto al riepilogo mi serve un comando che gestisca un file che non inserisco io...

Mi sono spiegato ubn po meglio?
sephiroth978
Newbie
 
Post: 3
Iscritto il: 23/08/13 09:18

Re: Aiuto per una macro

Postdi ricky53 » 27/08/13 01:20

Ciao,
puoi inviare il codice completo e descrivere meglio i passi che fai.

Passo 1: apri il file ...
Passo 2: viene eseguita la macro ...
Passo 3: la macro di "Passo 2" all'istruzione ... apre il file ... contenuto in "B3"
Passo 4: poi la macro esegue ...

Descrivi bene i passi utilizzando lo schema che ti ho proposto
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Aiuto per una macro

Postdi Anthony47 » 27/08/13 01:45

In aggiunta al messaggio di Ricky (vedi sopra)...

Dunque non posso scrivere io il file da aprire ma per passare dal file aperto al riepilogo mi serve un comando che gestisca un file che non inserisco io...

Perdona, ma questa frase e' contorta assai...
Il file da aprire lo leggi in B3 e lo usi nel codice; lo facevi gia' col codice che pubblicasti nel primo messaggio.
Per passare dal file appena aperto a Riepilogo.xlsm non ti serve sapere la partenza (che comunque conosci) ma ti serve la destinazione (il worlbook a cui devi far riferimento), che conosci perche' si chiama "Riepilogo.xlsm".
Inoltre, se la macro e' scritta nel file Riepilogo.xlsm, puoi far riferimento a quel file tramite "ThisWorkbook", che il metodo che ti avevo suggerito io.

Che cosa non ho afferrato?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Aiuto per una macro

Postdi sephiroth978 » 27/08/13 13:29

Ciao anthony, gra<zie per le risposte.

Appena arrivo a casa posto delle immagini per spiegarti esattamente quali sono i miei problemi. Anche perche in effetti mi rendo conto che e difficile spiegare un file crearto da me a un altra persona...

A dopo, buona giornata
sephiroth978
Newbie
 
Post: 3
Iscritto il: 23/08/13 09:18


Torna a Applicazioni Office Windows


Topic correlati a "Aiuto per una macro":

Aiuto urgente!!!
Autore: templare77
Forum: Software Windows
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti