Condividi:        

[Excel] Importare da fogli diversi

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

Re: [Excel] Importare da fogli diversi

Postdi christianghz » 06/02/14 11:59

Grazie Ricky!
ho inserito i dati mancanti, ma quando faccio partire la macro mi dà "Errore di runtime 9: Indice non incluso nell'intervallo"

e mi evidenzia Set WS1 = Wb1.Sheets("richiesta ritiro") :?:
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Sponsor
 

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 06/02/14 12:14

Ciao,
controlla il nome del foglio !!!

A me risultava essere "richiesta ritiro" con "UNO" spazio di separazione tra richiesta e ritiro !!!
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Importare da fogli diversi

Postdi christianghz » 08/02/14 12:40

Niente... ho provato a cambiare anche nome del foglio per essere sicuro ma mi da' sempre lo stesso errore :oops:
Set WS1 = Wb1.Sheets("..........")


e ho controllato che anche nome e percorso del file siano corretti..
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 08/02/14 13:51

Ciao,
controlla bene il nome del foglio nel tuo file .. attenzione agli spazi, prima e dopo il nome

E' meglio eliminare gli spazi e mettere un "_"

Poi copia/incolla il nome del foglio nella macro !


Per sicurezza ti invio due file sui quale fare le prove:

FILE di ESEMPIO

Estrai i due file nella stessa directory e prova ...



EDIT: ho aggiunto un file di esempio
Ultima modifica di ricky53 su 08/02/14 13:59, modificato 2 volte in totale.
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Importare da fogli diversi

Postdi Anthony47 » 08/02/14 13:52

Niente... ho provato a cambiare anche nome del foglio per essere sicuro ma mi da' sempre lo stesso errore :oops:
Set WS1 = Wb1.Sheets("..........")
e ho controllato che anche nome e percorso del file siano corretti..
Questa tua ultima affermazione mi fa pensare che ci sia un equivoco: il foglio "richiesta ritiro" deve esistere nel file che era attivo al lancio della macro; e' li che hai controllato? Hai fatto modifiche alla ultima macro di Ricky?

Leggi anche il suggerimento di Ricky, sopra.

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

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 08/02/14 14:01

Ciao,
dopo aver letto l'intervento di Anthony

Io, nello scrivere il codice, nell'esempio iniziale avevo fatto riferimento ai nomi del tuo file.

In questo esempio ho eliminato gli spazi ... prova su questi file e poi adatta i tuoi ELIMINANDO GLI SPAZI nei NOMI dei FOGLI ... e dei FILE !!!
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Importare da fogli diversi

Postdi christianghz » 08/02/14 15:17

Ok forse ho capito il mio errore:
io avevo salvato il modulo richiesta ritiro in una nuova cartella dove metterò tutte le richieste ritiro, e poi ho creato un file sul desktop chiamato riepilogo dove ho incollato la macro e da lì do "Esegui".

Invece mi par di capire che la macro deve essere inserita sul primo file, ovvero il modulo richiesta ritiro (perchè vedo che tu ricky l'hai messa là..).

ma a sto punto non capisco, ogni volta che mi arriva un modulo richiesta ritiro devo entrare in ogni modulo richiesta ritiro e far eseguire la macro?

Immagino di no.. perchè io vorrei aprire il file riepilogo e da lì far partire una macro che in automatico va a estrapolarsi i dati da tutti i moduli che ho messo nella nuova cartella dedicata..

scusate l'ignoranza :oops: :oops: :oops:
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 08/02/14 15:44

Ciao,
per scrivere del codice in una macro bisogna sapere bene cosa la si deve fare ... tu non avevi specificato bene le tue necessità ed io ho prodotto del codice che prendeva dei dati da un file e li scriveva in un altro.

Partiamo dall'inizio:
1. tu hai un file "Riepilogativo" nel quale inserisci una macro (la mia che sistemeremo dopo)
2. apri un file "Richiesta_Ritiro.xls"
3. vuoi copiare i dati (alcuni o tutti da stabilire quali) di questo file in una o più righe del file "Riepilogativo" (in base alle condizioni sui pallets diversi)


Ho sintetizzato bene?
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 08/02/14 16:15

Ciao,
in base a quanto ti ho scritto prima ecco il codice modificato
Copia questo codice nel Modulo1 del file "Riepilogativo.xls"

CONTROLLA BENE:
i NOMI dei FILE
i NOMI dei FOGLI
che hai tu con quanto ho scritto nella MACRO !!!


Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati_Ritiro()
    Dim XX As Integer, U_Riga As Long, MioPercorso As String, MioFile As String, Wb1 As Workbook, Wb2 As Workbook
    Dim WS1 As Worksheet, WS2 As Worksheet
   
    Set Wb1 = Workbooks("Richiesta_Ritiro.xls") ' <<===== QUI va il nome del file che ti arriva
    Set WS1 = Wb1.Sheets("Richiesta_Ritiro") ' <<===== Controlla il nome del FOGLIO !!!
   
   
    Windows("Riepilogativo.xls").Activate  ' <<===== Anche QUI Controlla il nome del FILE aperto !!!
    Set Wb2 = ActiveWorkbook
    Set WS2 = Wb2.Sheets("Riepilogativo") ' <<===== Anche QUI Controlla il nome del FOGLIO !!!
    U_Riga = WS2.Range("A" & Rows.Count).End(xlUp).Row + 1
   
    With WS2
        .Cells(U_Riga, "A") = WS1.Range("B4")
        .Cells(U_Riga, "B") = WS1.Range("B5")
        .Cells(U_Riga, "C") = WS1.Range("B6")
        .Cells(U_Riga, "D") = WS1.Range("G5")

' . . .
' . . . QUI INSERISCI LE ALTRE ISTRUZIONI per impostare le colonne "E-R" del foglio "Riepilogativo"
' . . .
   
' Dati dei Pallets
        .Cells(U_Riga, "S") = WS1.Range("E25")
        .Cells(U_Riga, "T") = WS1.Range("C25")
        .Cells(U_Riga, "U") = WS1.Range("G25")
        .Cells(U_Riga, "V") = WS1.Range("I25")
        .Cells(U_Riga, "W") = WS1.Range("K25")
        .Cells(U_Riga, "Y") = WS1.Range("M25")
       
' Contrassegno
        .Cells(U_Riga, "X") = WS1.Range("C20")
       
' EVENTUALI Dati degli altri pallets
        For XX = 27 To 31 Step 2
            If WS1.Range("C" & XX) <> "" Then
                .Range("A" & U_Riga & ":Y" & U_Riga).Copy Destination:=.Range("A" & U_Riga + 1)
                .Cells(U_Riga + 1, "S") = WS1.Range("E" & XX)
                .Cells(U_Riga + 1, "T") = WS1.Range("C" & XX)
                .Cells(U_Riga + 1, "U") = WS1.Range("G" & XX)
                .Cells(U_Riga + 1, "V") = WS1.Range("I" & XX)
                .Cells(U_Riga + 1, "W") = WS1.Range("K" & XX)
                .Cells(U_Riga + 1, "Y") = WS1.Range("M" & XX)
                U_Riga = U_Riga + 1
            Else
                Exit For
            End If
        Next XX
    End With
   
    MsgBox "Effettuata la copia dei dati della spedizione n.  '" & WS1.Range("G5") & "'"

    Set Wb1 = Nothing
    Set Wb2 = Nothing
    Set WS1 = Nothing
    Set WS2 = Nothing
End Sub
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Importare da fogli diversi

Postdi christianghz » 08/02/14 17:06

Allora Ricky,
non so cosa intendi con copiarlo nel "Modulo 1"

Per capire dov'è il problema, questo è quello che ho fatto passo per passo:

ho aperto il file Riepilogativo.xls
ho fatto Visualizza Macro -> Crea
ho incollato il tuo ultimo codice e messo i nomi corretti dei file e dei fogli (adesso non c'è più il percorso del file da mettere)

Se faccio "Esegui" mi dà errore di runtime 9 indice non incluso nell'intervallo e nel debug: Set Wb1 = Workbooks("Modulo richiesta ritiro.xlsx") [il nome del file e l'estensione sono corretti]

Se faccio "Esegui istruzione" mi dà Impossibile eseguire il codice in modalità interruzione.

Cosa sbaglio?
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 09/02/14 01:37

Ciao,
hai copiato il codice nel file "Riepilogativo.xls" ???

se non ne esci mandaci i due file e vediamo di risolvere.

La tua versione è la 2010?
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Importare da fogli diversi

Postdi ricky53 » 09/02/14 02:00

Ciao,
ecco un E S E M P I O.

Nel file ZIP trovi due file excel,
aprili entrambi
ed esegui la macro che trovi nel "Moduol1" (Apri l'editor del VB con "AlT+F11", seleziona la macro ed eseguila)
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. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Importare da fogli diversi":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti