Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 37

Discussione: Copiare celle specifiche da due fogli



  1. #1
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Copiare celle specifiche da due fogli

    Ciao a tutti,
    prendendo spunto da questo thread:Copiare dati fra 2 fogli excel , ho provato ad adattarlo alle mie esigente.

    Le esigenze sono:
    Copiare nel foglio di lavoro Anagrafica del file "Corsi2.0F" solamente alcune celle presenti nei fogli di lavoro Anagrafica ed Anagrafica (2) del file "GestForm_V13F", tenendo conto che i dati NON vanno importati quando nella colonna O dei fogli stessi (Anagrafica ed Anagrafica (2) del file "GestForm_V13F") è presente il testo "NO".

    Codice: 
    Sub Copia_in_Corsi2()
    'dichiaro le variabili
    Dim WK1 As Workbook, WK2 As Workbook, sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet
    Dim uRiga As Long, y As Long, x As Integer
    
    ' disabilito lo sfarfallio dello schermo durante l'esecuzione della macro
    Application.ScreenUpdating = False
                
    'assegno le variabili
                
                Set WK1 = Workbooks.Open(WK1.Path & "\" & "GestForm_V13F.xlsx")
                Set WK2 = ThisWorkbook
                Set sh1 = WK1.Worksheets("Anagrafica")
                Set sh2 = WK2.Worksheets("Anagrafica")
                Set sh3 = WK£.Worksheets("Anagrafica(2)")
                With sh2
                        uRiga = sh2.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                        x = 1
                        For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                If .Cells(y, 15) <> "NO" Then
      'copio le righe corrispondenti da Anagrafica in Anagrafica
                        .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                        .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                        .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                        .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                        .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                        .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                        .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                        x = x + 1
               Next
               End With
               With sh3
                        uRiga = sh3.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                        x = 1
                        For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                
      'copio le righe corrispondenti da Anagrafica in Anagrafica(2)
                        .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                        .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                        .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                        .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                        .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                        .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                        .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                        x = x + 1
               Next
               End With
      
    'salvo le modifiche in questo file
                WK2.Save
     
     ' chiudo il file GestForm_V13F
                WK1.Close
    
    'ripristino le impostazioni per lo schermo
            Application.ScreenUpdating = True
            
    'distruggo le assegnazioni delle variabili
        Set sh1 = Nothing
        Set sh2 = Nothing
        Set sh3 = Nothing
        Set WK2 = Nothing
        Set WK1 = Nothing
    
    End Sub
    Evidenzio:
    1) che ovviamente non in questo allegato, ma nel file originale di "GestForm_V13F.xlsx" è presente una password sia all'apertura del file che a protezione del VBA per nascondere i fogli Anagrafica e Anagrafica (2).
    2) che non sono riuscito a provare quello che ho scritto perchè mi sono piantato già nella definizione del percorso del file....

    https://www.dropbox.com/s/0x3cj0o72o...2.0F.xlsm?dl=0

    https://www.dropbox.com/s/5fwr7c1mgvoslkz/GestForm_V13F.xlsm?dl=0

    Grazie per l'aiuto, le correzioni e ....la comprensione.

    Gene

    PS Mi scuso in anticipo ma non mi spiego la significativa dimensione in MB del file Corsi2.0F.
    Ultima modifica fatta da:Marius44; 01/10/16 alle 15:49

  2. #2
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    l estensione del file mittente non coincide con quella assegnata nel listato.

    hai impostato "GestForm_V13F.xlsx" ma il file è "GestForm_V13F.xlsm"

    dai che ce la fai.

  3. #3
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Corretto ma ora il debug è partito alla grande.




    E' gradita un'anima pia che dia un'occhiata a quanti e quali errori ho fatto!!

    Grazie in anticipo.

    Gene

  4. #4
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    infatti hai messo next invece di end if.
    quando apri un if then, prima di inserire le oprazioni da fare metti subito end if in modo da non scordartelo.
    stessa cosa per il for, chiudilo con next prima di fare il resto.

    Se l'anima pia ti corregge gli errori non imparerai mai a farlo da te

  5. I seguenti utenti hanno dato un "Utile"


  6. #5
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    Non sempre il debug ti dice proprio proprio la verità ma non va molto lontano.

    Indenta bene quel codice e vedrai anche tu che dentro il for c'è un costrutto che non è stato chiuso.

    Rieditando....
    Ciao Patel.

  7. #6
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Ciao,
    a Pasqua si è tutti più buoni ma siccome mancano tanti mesi...persevero.....

    Ho corretto anche l'errore di battitura nel Set sh3.
    Perchè quanto sotto, tenuto conto che il With c'è ?:


    Mentre se chiudo subito il For (interpretando MALE il suggerimento di Patel) ottengo l'evidenziazione questo:


    Gene

  8. #7
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    2534
    Versione Office
    2013 PC
    Utile ricevuti
    428
    Utile dati
    42

    Re: Copiare celle specifiche da due fogli

    Manca comunque il next del for dopo end if

    Edit
    Se mettessi le indentazioni forse te ne accorgeresti subito.

    Codice: 
                With sh2
                    uRiga = sh2.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                                'copio le righe corrispondenti da Anagrafica in Anagrafica
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                            .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                            .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                            .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                            .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                            .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                            .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                            x = x + 1
                      end if
                   Next
               End With

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  9. I seguenti utenti hanno dato un "Utile"


  10. #8
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    Indentare serve proprio a capire dove diavolo stia questo tipo di errori. fino a che non indenti come si deve farai molta più fatica a trovare l' errore.


    Codice: 
    Sub UnIndentaturaTogleLaRottura()
        'Si indenta Ogni blocco quindi anche ora
        '
        For Each cella In foglio.Cells
            'il for è un blocco che termina con Next.
            'Il codice al suo interno deve essere indentato
            If A = b Then
                'Il costrutto If..then..Else, è un blocco che termina con END IF
                'Anche quì bisogna indentare il listato
            ElseIf b = c Then
                'vale il discorso appena scritto quì sopra
                '
            Else
                'vale il discorso appena scritto quì sopra
                '
            End If
            'Qui siamo fuori da blocco che è preceduto ed infatti l' ambiente di sviluppo ci viene in aiuto
            'quando andiamo a capo ci troviamo a scrivere nel luogo giusto.
        Next
        
        With Me
            'Anche with è un blocco che ha un termine ben definito e quindi si indenta
            Do Until A = 0 Or A <> 0
                'i cicli sono blocchi e come tutti i blocchi, contengono codice indentato
            Loop
        End With
        
        If pippo Then
            If paperino Then
                If clarabella Then
                    If topolino Then
                        If gambadilegno Then
                            ' ad ogni chiusura di un blocco non è peccato capitale mettere un commento per ricordarsi di che blocco si tratta.
                            ' Se visioni una pagina web non è difficile che tu possa trovare questo tipo di commento in aiuto al programmatore
                            'Soprattutto quando gli annidamenti sono molti o il listato e lungo.
                            ' ed io aggiungo, anche per chi ancora non è smaliziato ;)
                        End If 'gambadilegno
                    End If 'topolino
                End If 'clarabella
            End If 'paperino
        End If ' pippo
        
        
    End Sub

    Se guardi dopo FOR y=to URiga...

    Ed indenti come si deve ti accorgerai che hai un costutto If aperto SEnza esser stato chiuso.
    Ma DEVE essere chiuso prima della RIga
    NEXT ' FOR y=to URiga...

  11. I seguenti 3 utenti hanno dato un "Utile" a dracoscrigno per questo post:


  12. #9
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    Mentre se chiudo subito il For (interpretando MALE il suggerimento di Patel) ottengo l'evidenziazione questo:
    Il nuovo messaggio di errore devi vederlo come una buona notizia. significa che sei vivo e stai tentando di non morire affogato dalla miriade di errori di sintassi e Dio sa solo cos' altro c'è nel tuo listato.
    Che poi, tu abbia interpretato male quanto ti ha consigliato Patel e la buon anima di baloon ti ha corretto questo è un altro discorso.

    Dicevo che è una buona notizia perchè quell' errore implica che ora il listato è scritto sintatticamente correttamente.
    Poi. se chiudi un For appena creato, lasciando fuori tutto il codice che dovresti ciclare. Bè. Quelli sono cavolacci amari tuoi perchè il Debuggher non ce la fa a scovare anche le astrusità di un programmatore in erba.

    L' errore 91 in quel contesto ci dice che il percorsoNomeFile che hai costruito non esiste.

    In effetti se vai a vedere il nome del Workbook che hai adoperato ti accorgerai che è sbaglaito.

    Quì. la colpa non è tua. la colpa è di quel somaro che, per primo, si è messo in testa che WK1 e WK2, assieme SH1, SH3 ed SH2 sono bei nomi validi per definire delle variabili.
    Probabilmente fa più figo chiamarli cosi ma ti posso assicurare che se quelle variabili le avessi nominate:

    Codice: 
    Dim FileMittente as workbook
    Dim fileDestinatario as Workbook
    Dim fogliomittente  as worksheet
    Son certo che avresti compreso meglio il listato ed avresti commesso meno errori

  13. #10
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    Manca comunque il next del for dopo end if
    anche io sono stato ingannato dall'indentazione mal fatta

  14. #11
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    2534
    Versione Office
    2013 PC
    Utile ricevuti
    428
    Utile dati
    42

    Re: Copiare celle specifiche da due fogli

    Dim FileMittente as workbook
    Dim fileDestinatario as Workbook
    Dim fogliomittente as worksheet

    Perfettamente d'accordo, usare sempre nomi di variabili che identifichino il più possibile la loro funzione.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  15. #12
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4606
    Versione Office
    Office 2013
    Utile ricevuti
    1004
    Utile dati
    971

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    Dim FileMittente as workbook
    Dim fileDestinatario as Workbook
    Dim fogliomittente as worksheet

    Perfettamente d'accordo, usare sempre nomi di variabili che identifichino il più possibile la loro funzione.
    Credo che quelli che vogliono imparare il Vba apprezzerebbero delle Dim più comprensibili, capisco la pigrizia nello scrivere un nome lungo ma visto che la dim e' uno spazio nella memoria e quindi lo si scrive una volta sola vale la pena dare un significato alla variabile sicuramente a beneficio di tutti
    Esempio a volte leggo variabili come y, i, uRiga, x, che pigrizia!!!
    Un saluto a tutti

  16. #13
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    2534
    Versione Office
    2013 PC
    Utile ricevuti
    428
    Utile dati
    42

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Credo che quelli che vogliono imparare il Vba apprezzerebbero delle Dim più comprensibili, capisco la pigrizia nello scrivere un nome lungo ma visto che la dim e' uno spazio nella memoria e quindi lo si scrive una volta sola vale la pena dare un significato alla variabile sicuramente a beneficio di tutti
    Esempio a volte leggo variabili come y, i, uRiga, x, che pigrizia!!!
    Un saluto a tutti
    solitamente le variabili con una sola lettera sono uno "standard" e vengono utilizzate ad esempio nelle for - next o in altri cicli.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  17. #14
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    .....
    Esempio a volte leggo variabili come y, i, uRiga, x, che pigrizia!!!
    Ciao Gerardo,
    c'è quindi una "traduzione" anche per queste?

    Gene

  18. #15
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    chi crea il codice dovrebbe usare variabili con nomi significativi per migliorare la comprensibilità, se hai capito l'utilizzo di quelle variabili ne puoi cambiare tu il nome.
    Mi sembra che il primo pigro sei tu, aspetti sempre la soluzione dagli altri, Natale è lontano

  19. #16
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Ciao Patel,
    ti tranquillizzo sul fatto che NON ho mai chiesto, nè chiederò mai di fare una qualsiasi cosa al mio posto.

    Non sono e difficilmente diventerò un esperto ma nei miei post in contemporanea con le richieste vi sono e vi saranno sempre riscontri e grazie per la crescita indotta dalle risposte di tutti voi e dagli approfondimenti e prove del sottoscritto.

    Nello specifico, la domanda nasceva dal fatto che, dallo scritto di Gerardo, ho inteso che poteva esserci una terminologia estesa "ufficiale" e quindi chiedevo delucidazioni.

    Gene

  20. #17
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    uah ah ah ... non era mia intenzione creare un principio di flame. calmi

    non c'è una regola per i nomi di classi, variabili o oggetti in generale. o meglio. esiste qualcosa ma non è questo il punto.

    il nome di una variabile, che nessuno ti vieta di definire anche con un solo carattere preso a caso perchè sintatticamente corretto, dovrebbe essere scelto in modo che dia notizia riguardo al proprio contenuto.
    questo aiuta molto a ragionare e ricordare cosa fa il programma.

    prendi questa istruzione:

    y.value = m.value + n.value
    m.value= y.value + n.value
    vedi che è una somma di due celle impressa in una terza cella ma non vedi niente di più.
    eppure ci sarebbe un qualche errore...


    ora guarda questi due

    lordo.value = netto.value + tara.value
    netto.value = lordo.value + tara.value


    in un possibile scenari di ricerca di un certo errore ti renderesti presto conto che la seconda istruzione ha qualcosa che non va.

    la programmazione orientata agli oggetti è anche questo. ;)

  21. I seguenti utenti hanno dato un "Utile"


  22. #18
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Ciao Draco,
    l'ultima versione (non funziona ancora ma questa discussione mi stà aiutando molto):
    Codice: 
    Sub Copia_in_Corsi2()
    'dichiaro le variabili
    Dim WK1 As Workbook, WK2 As Workbook, sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet
    Dim uRiga As Long, y As Long, x As Integer
    
    ' disabilito lo sfarfallio dello schermo durante l'esecuzione della macro
    Application.ScreenUpdating = False
                
    'assegno le variabili
                
                Set WK1 = Workbooks.Open(WK2.Path & "\" & "GestForm_V13F.xlsm")
                Set WK2 = ThisWorkbook
                Set sh1 = WK1.Worksheets("Anagrafica")
                Set sh2 = WK2.Worksheets("Anagrafica")
                Set sh3 = WK3.Worksheets("Anagrafica(2)")
                With sh2
                    uRiga = sh2.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                                'copio le righe corrispondenti da Anagrafica in Anagrafica
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                            .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                            .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                            .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                            .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                            .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                            .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                            x = x + 1
                      End If
                   Next
               End With
               
               With sh3
                        uRiga = sh3.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                                'copio le righe corrispondenti da Anagrafica in Anagrafica
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                            .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                            .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                            .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                            .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                            .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                            .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                            x = x + 1
                      End If
                   Next
               End With
      
    'salvo le modifiche in questo file
                WK2.Save
     
     ' chiudo il file GestForm_V13F
                WK1.Close
    
    'ripristino le impostazioni per lo schermo
            Application.ScreenUpdating = True
            
    'distruggo le assegnazioni delle variabili
        Set sh1 = Nothing
        Set sh2 = Nothing
        Set sh3 = Nothing
        Set WK2 = Nothing
        Set WK1 = Nothing
    
    End Sub
    Mentre per l'utilizzo delle istruzioni "parlanti" se le dim cambiano come da tuo suggerimento anche i set "gli vanno dietro" ossia
    Dim WK2 As Workbook --> Dim fileDestinatario as Workbook
    Set WK2 = ThisWorkbook --> Set fileDestinatario = ThisWorkbook
    Set foglioDestinatario = fileDestinatario.Worksheets("Anagrafica")


    Grazie
    Gene

  23. #19
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    non funziona ancora non ci dice niente, da ancora errori o no ? avvia la macro non F8 e controlla i valori delle variabili se sono corretti portandoci il mouse sopra.

    un'altra cosa: usi with sh2 e poi dentro il With scrivi ancora sh2, perché ?
    sembra che tu copi celle nell'ambito dello stesso foglio, è questo che vuoi fare ?

  24. #20
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    per essere più chiaro
    Codice: 
                With sh2
                    uRiga = sh2.Cells(Rows.Count, 1).End(xlUp).Row ' <<< hai scritto ancora sh2 ma non è grave
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                                'copio le righe corrispondenti da Anagrafica in Anagrafica
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1) ' copi celle da sh2 in altra posizione sempre su sh2
    '-------------------------------
               With sh3
                        uRiga = sh3.Cells(Rows.Count, 1).End(xlUp).Row ' <<<< hai scritto ancora sh3 ma non è grave
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1) ' <<<< qui va bene copi da hs3 su hs2

  25. #21
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Ciao,
    l'errore presente è identico a quello nel mio post #6 ( anche cambiando il riferimento da WK1 a WK2)


    La base di partenza è stata una macro di Ges riadattata in malo modo dallo scrivente e precisamente:
    Codice: 
    Sub Copia_in_Excel2()
    Dim WK1 As Workbook, WK2 As Workbook, sh1 As Worksheet, sh2 As Worksheet
    Dim uRiga As Long, y As Long, x As Integer
            Application.ScreenUpdating = False
                Set WK1 = ThisWorkbook
                Set WK2 = Workbooks.Open(WK1.Path & "\" & "excel2.xlsx")
                Set sh1 = WK1.Worksheets("BOOKING")
                Set sh2 = WK2.Worksheets("BOOKING")
                    With sh1
                        uRiga = sh1.Cells(Rows.Count, 1).End(xlUp).Row
                        x = 2
                        For y = 2 To uRiga
                If .Cells(y, 12) = "OPZ" Or .Cells(y, 12) = "VOID" Or .Cells(y, 12) = "OK" Then
                        sh2.Cells(x, 1) = .Cells(y, 8)
                        sh2.Cells(x, 2) = .Cells(y, 2)
                        sh2.Cells(x, 3) = .Cells(y, 4)
                        sh2.Cells(x, 4) = .Cells(y, 5)
                        sh2.Cells(x, 5) = .Cells(y, 1)
                        sh2.Cells(x, 6) = .Cells(y, 7)
                        sh2.Cells(x, 7) = .Cells(y, 9)
                        sh2.Cells(x, 8) = .Cells(y, 10)
                        sh2.Cells(x, 9) = .Cells(y, 11)
                        sh2.Cells(x, 10) = .Cells(y, 12)
                        sh2.Cells(x, 11) = .Cells(y, 13)
                        sh2.Cells(x, 12) = .Cells(y, 14)
    ........
    Gene
    [EDIT]
    ho visto il tuo ultimo post. Sicuramente ho capito una cosa che cambierò immediatamente il nome del foglio Anagrafica destinatario in AnagraficaFull.

  26. #22
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Effettuate le correzioni. L'errore resta ma lo script è ora questo:
    Codice: 
    Sub Copia_in_Corsi2()
    'dichiaro le variabili
    Dim WK1 As Workbook, WK2 As Workbook, sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet
    Dim uRiga As Long, y As Long, x As Integer
    
    ' disabilito lo sfarfallio dello schermo durante l'esecuzione della macro
    Application.ScreenUpdating = False
                
    'assegno le variabili
                
                Set WK1 = Workbooks.Open(WK2.Path & "\" & "GestForm_V13F.xlsm")
                Set WK2 = ThisWorkbook
                Set sh1 = WK1.Worksheets("Anagrafica")
                Set sh2 = WK2.Worksheets("AnagraficaFull")
                Set sh3 = WK3.Worksheets("Anagrafica(2)")
                With sh1
                    uRiga = sh1.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                                'copio le righe corrispondenti da Anagrafica in Anagrafica
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                            .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                            .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                            .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                            .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                            .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                            .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                            x = x + 1
                      End If
                   Next
               End With
               
               With sh3
                        uRiga = sh3.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                    x = 1
                    For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                        If .Cells(y, 15) <> "NO" Then
                                'copio le righe corrispondenti da Anagrafica in Anagrafica
                            .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                            .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                            .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                            .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                            .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                            .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                            .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                            x = x + 1
                      End If
                   Next
               End With
      
    'salvo le modifiche in questo file
                WK2.Save
     
     ' chiudo il file GestForm_V13F
                WK1.Close
    
    'ripristino le impostazioni per lo schermo
            Application.ScreenUpdating = True
            
    'distruggo le assegnazioni delle variabili
        Set sh1 = Nothing
        Set sh2 = Nothing
        Set sh3 = Nothing
        Set WK2 = Nothing
        Set WK1 = Nothing
    
    End Sub

  27. #23
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    Codice: 
    Set WK1 = Workbooks.Open(WK2.Path & "\" & "GestForm_V13F.xlsm")
    chi lo conosce a questo punto WK2 ?
    magari posponi così
    Codice: 
    Set WK2 = ThisWorkbook            
    Set WK1 = Workbooks.Open(WK2.Path & "\" & "GestForm_V13F.xlsm")

  28. #24
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    ... Le esigenze sono:
    Copiare nel foglio di lavoro Anagrafica del file "Corsi2.0F" solamente alcune celle presenti nei fogli di lavoro Anagrafica ed Anagrafica (2) del file "GestForm_V13F", tenendo conto che i dati NON vanno importati quando nella colonna O dei fogli stessi (Anagrafica ed Anagrafica (2) del file "GestForm_V13F") è presente il testo "NO".
    File Corsi2_0F-xlsm

    A
    B
    C
    D
    E
    F
    G
    2
    Nominativo
    Data di nascita
    Codice Fiscale
    Qualifica
    Unità produttiva
    Ruolo aziendale
    In forza
    3
    Wayne John
    01/01/2000
    Operaio Lombardia Lavoratore SI
    4
    Beta Eta
    02/02/2016
    Operaio Veneto Lavoratore SI
    5
    pippo franco
    02/02/2001
    Impiegato Lombardia Capo Reparto SI
    6
    Capp Andy
    03/06/1970
    RYTJUTYJJGHJJH Operaio Lombardia Lavoratore SOMMINISTRATO
    7
    Grant Cary
    01/02/1999
    FGFGDGDFGDFG Operaio Lombardia Lavoratore SOMMINISTRATO
    8
    Super Pippo Operaio Veneto Lavoratore SOMMINISTRATO
    Sheet: Anagrafica


    File GestForm_V13F.xlsm


    A
    B
    C
    D
    E
    F
    G
    H
    I
    J
    K
    L
    M
    N
    O
    2
    ID
    Data inizio
    Nominativo
    Cognome
    Nome
    Nuovo assunto
    Data di nascita
    Luogo di nascita
    Codice Fiscale
    Qualifica
    Unità produttiva
    Ruolo aziendale
    Ruolo organigramma sicurezza
    Titolo di Studio
    In forza
    3
    1
    42004
    Grant Cary Grant Cary
    FALSO
    01/02/1999
    Como FGFGDGDFGDFG Operaio Lombardia Lavoratore Lavoratore Licenza Media SOMMINISTRATO
    4
    2
    01/01/2014 Super Pippo Super Pippo
    FALSO
    Operaio Veneto Lavoratore Lavoratore Licenza Media SOMMINISTRATO
    5
    3
    01/01/2015
    pippo franco pippo franco
    FALSO
    02/02/2001
    Impiegato Veneto Capo Reparto Addetto Antincendio Licenza Media NO
    Sheet: Anagrafica (2)


    A
    B
    C
    D
    E
    F
    G
    H
    I
    J
    K
    L
    M
    N
    O
    2
    ID
    Data inizio
    Nominativo
    Cognome
    Nome
    Nuovo assunto
    Data di nascita
    Luogo di nascita
    Codice Fiscale
    Qualifica
    Unità produttiva
    Ruolo aziendale
    Ruolo organigramma sicurezza
    Titolo di Studio
    In forza
    3
    1
    01/01/2015
    Wayne John Wayne John
    FALSO
    01/01/2000
    Operaio Lombardia Lavoratore Addetto alle Emergenze Licenza Media SI
    4
    2
    31/12/2014 Beta Eta Beta Eta
    FALSO
    02/02/2016
    Operaio Veneto Lavoratore Addetto Antincendio Licenza Media SI
    5
    2
    30/12/2015 Capp Andy Capp Andy
    FALSO
    06/03/1970
    Milano RYTJUTYJJGHJJH Operaio Lombardia Lavoratore Lavoratore Licenza Media SI
    Sheet: Anagrafica

    Come puoi notare tu stesso, le tabelle dove vai a prelevare i dati NON sono uguali alla tabella dove vai ad inserire i dati.

    E' una svista, c'è da sapere qualcosa, oppure semplicemnte prelevi la copia dei soli campi presenti nella dabella di destinazione?


    Perchè, arrivati a questo punto mi sa che facciamo prima a fare così:

    Seleziona la macro di cui abbiamo discusso fino ad ora e poi premi canc.


    Per ora ti ho preparato questo:

    Codice: 
    Option Explicit
    Sub EstraiDati()
        'Apertura del fileMittente
        With Application.FileDialog(msoFileDialogOpen)
            .AllowMultiSelect = False
            .Show
            If .SelectedItems.Count > 0 Then
                'Disabilitazione delle macro
                Dim StatoSicurezza As Integer
                StatoSicurezza = Application.AutomationSecurity
                Application.AutomationSecurity = msoAutomationSecurityForceDisable
                
                'Eliminazione del messaggio di file aperto
                Application.DisplayAlerts = False
                    Dim FileMittente As Workbook
                    Set FileMittente = Workbooks.Open(.SelectedItems.Item(1))
                Application.AutomationSecurity = StatoSicurezza
                Application.DisplayAlerts = True
            End If
        End With
        
        'definizione della zona di lavoro nel filemittente
        Dim FoglioMittente As Worksheet
        Set FoglioMittente = FileMittente.Worksheets("Anagrafica (2)")
        Dim PrimaColonnaMittente As Range
        With FoglioMittente
            Set PrimaColonnaMittente = .Range(.Range("A2").Address, .Cells(.Rows.Count, 1).End(xlUp).Address)
        End With
        
        
        'reiterazione su tutte le righe della zona di lavoro del filemittente
        Dim cella As Range
        For Each cella In PrimaColonnaMittente.Cells
            'se nel campo "in forza" , che si trova a 14 caselle dalla cella in esame, NON c'è scritto "no" allora...
            If Not LCase(cella.Offset(0, 14).Value) = "no" Then
                
                'imprimi i valori della riga in esame nella prima riga del filedestinatario
                With Me.Cells(Me.Rows.Count, 1).End(xlUp).Offset(1, 0)
                        .Value = cella.Offset(0, 2).Value
                        .Offset(0, 1).Value = cella.Offset(0, 6).Value
                        .Offset(0, 2).Value = cella.Offset(0, 8).Value
                        .Offset(0, 3).Value = cella.Offset(0, 9).Value
                        .Offset(0, 4).Value = cella.Offset(0, 10).Value
                        .Offset(0, 5).Value = cella.Offset(0, 11).Value
                        .Offset(0, 6).Value = cella.Offset(0, 14).Value
                End With
            End If
        Next
        
        'chiusura del filemittente senza salvataggio
        FileMittente.Close savechanges:=0
    End Sub

    Andrebbe capito, Passo dopo passo ed eventualmente modificato.
    Certamente è una base migliore perchè è costruita sulla tua richiesta quindi dovresti riuscire meglio a migliorartela.


    Ci sono alcuni concetti che potrebbero non esserti chiari. Chiedi e ti sarà risposto da qualcuno.

    A titolo di esempio:

    Codice: 
        Dim PrimaColonnaMittente As Range
        With FoglioMittente
            Set PrimaColonnaMittente =.Range(.Range("A2").Address, .Cells(.Rows.Count, 1).End(xlUp).Address)
        End With
    La puoi vedere meglio:
    Codice: 
        Dim PrimaCella As Range
        Dim UltimaCella As Range
        Dim PrimaColonnaMittente As Range
        With FoglioMittente
            Set PrimaCella = .Range("A2")
            Set UltimaCella = .Cells(.Rows.Count, 1).End(xlUp)
            Set PrimaColonnaMittente = .Range(PrimaCella.Address, UltimaCella.Address)
        End With

    Ho notato che accedete alle celle del foglio sempre con una Uriga e poi diventate matti con cicli e contro cicli perdendovi in mezzo ad una miriade di variabili senza faccia come "x", "y", e chi sa solo cos' altro.

    Sappiamo che esiste il ciclo For Each...Next -> Per ogni cella è la traduzione in italiano.

    Bene. Senti questa frase:

    Per ogni cella della colonna "A", dove c'è un ID è so essere sempre piena;
    Se la cella di OffSet (0,14) NON contiene il valore "No" allora
    Compi queste istruzioni:
    ...
    Fine del Se
    Fine del Ciclo.

    diventa:
    Codice: 
    '...
        For Each cella In PrimaColonnaMittente.Cells
            'se nel campo "in forza" , che si trova a 14 caselle dalla cella in esame, NON c'è scritto "no" allora...
            If Not LCase(cella.Offset(0, 14).Value) = "no" Then
                Debug.Print cella.Offset(0, 14).Value
                
                'imprimi i valori della riga in esame nella prima riga del filedestinatario
                With Me.Cells(Me.Rows.Count, 1).End(xlUp).Offset(1, 0)
                        .Value = cella.Offset(0, 2).Value
                        .Offset(0, 1).Value = cella.Offset(0, 6).Value
                        .Offset(0, 2).Value = cella.Offset(0, 8).Value
                        .Offset(0, 3).Value = cella.Offset(0, 9).Value
                        .Offset(0, 4).Value = cella.Offset(0, 10).Value
                        .Offset(0, 5).Value = cella.Offset(0, 11).Value
                        .Offset(0, 6).Value = cella.Offset(0, 14).Value
                End With
            End If
        Next
    '...



    Adesso vado davvero a bermi una birra...

    Non copioincollare e basta... Studia!

  29. #25
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    Codice: 
       Dim PrimaColonnaMittente As Range
       With FoglioMittente
            Set PrimaColonnaMittente = .Range(.Range("A2").Address, .Cells(.Rows.Count, 1).End(xlUp).Address)
        End With
       Dim cella As Range
        For Each cella In PrimaColonnaMittente.Cells
    perché hai messo .cells ? non basta PrimaColonnaMittente ? oggi è la seconda volta (scossa) che vedo usare cells come proprietà di un range.

  30. #26
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    vista la domanda deduco che funzioni alche senza.
    lo metto perchè è l oggetto che rappresenta la collezione di celle del range a cui appartiene questo membro.
    se funziona anche senza, probabilmente è il membro restituito di default. come value... dovrei indagare.

  31. #27
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Ciao Draco,
    confermo che nulla è mutato rispetto alla mia richiesta in apertura:
    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    ......

    Le esigenze sono:
    Copiare nel foglio di lavoro Anagrafica del file "Corsi2.0F" solamente alcune celle presenti nei fogli di lavoro Anagrafica ed Anagrafica (2) del file "GestForm_V13F", tenendo conto che i dati NON vanno importati quando nella colonna O dei fogli stessi (Anagrafica ed Anagrafica (2) del file "GestForm_V13F") è presente il testo "NO".
    .....
    .
    In merito al tuo script, ho iniziato ad approfondire ma.....qualcuno ce l'ha con Me:


    Buona birra

    Gene


    Gene

  32. #28
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    732
    Versione Office
    2010
    Utile ricevuti
    24
    Utile dati
    158

    Re: Copiare celle specifiche da due fogli

    Ciao,
    da terrone testardo quale sono...ho ripreso in mano la macro e deciso di ripartire da 0 procedendo a step semplici.
    Quindi dopo aver corretto tutti gli errori da voi segnalati sono arrivato a farla funzionare anche se da Anagrafica ad AnagraficaFull.
    Ma dopo una giornata tosta preferisco vedere il bicchiere mezzo pieno!!
    La macro funzionante:
    Codice: 
    Sub Copia_in_Corsi2()
    'dichiaro le variabili
    Dim WK1 As Workbook, WK2 As Workbook, sh1 As Worksheet, sh2 As Worksheet
    Dim uRiga As Long, y As Long, x As Integer
    
    ' disabilito lo sfarfallio dello schermo durante l'esecuzione della macro
    Application.ScreenUpdating = False
                
    'assegno le variabili ("GestForm_V15+.xlsx" è il nome del file con la sua estensione)
                
                Set WK2 = ThisWorkbook
                Set WK1 = Workbooks.Open(WK2.Path & "\" & "GestForm_V15+.xlsm")
                Set sh1 = WK1.Worksheets("Anagrafica")
                Set sh2 = WK2.Worksheets("AnagraficaFull")
                With sh1
                        uRiga = sh1.Cells(Rows.Count, 1).End(xlUp).Row 'trovo l'ultima riga piena del primo file
                        x = 3 
                        For y = 3 To uRiga 'creo un ciclo che spazzola dalla riga 2 fino all'ultima piena
                
      'copio le righe corrispondenti
                        .Cells(y, 3).Copy Destination:=sh2.Cells(x, 1)
                        .Cells(y, 7).Copy Destination:=sh2.Cells(x, 2)
                        .Cells(y, 9).Copy Destination:=sh2.Cells(x, 3)
                        .Cells(y, 10).Copy Destination:=sh2.Cells(x, 4)
                        .Cells(y, 11).Copy Destination:=sh2.Cells(x, 5)
                        .Cells(y, 12).Copy Destination:=sh2.Cells(x, 6)
                        .Cells(y, 15).Copy Destination:=sh2.Cells(x, 7)
                        x = x + 1
               Next
               End With
      
    'salvo le modifiche nel file 2
                WK2.Save
     
     ' chiudo il file 2
                WK1.Close
    
    'ripristino le impostazioni per lo schermo
            Application.ScreenUpdating = True
            
    'distruggo le assegnazioni delle variabili
        Set sh1 = Nothing
        Set sh2 = Nothing
        Set WK2 = Nothing
        Set WK1 = Nothing
    
    End Sub
    Ora provo il prossimo step ossia importare e accodare anagrafica (2). Poi tocca alla esclusione dei NO e poi alle macro da disattivare e poi....

    Grazie per le tante ore e energie dedicatemi.

    Ci sentiamo per eventuali aiuti.

    Gene

  33. I seguenti utenti hanno dato un "Utile"


  34. #29
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    829
    Versione Office
    2010
    Utile ricevuti
    116
    Utile dati
    1

    Re: Copiare celle specifiche da due fogli

    infatti è questo il giusto approccio, vedrai che quello che hai imparato ed applicato da te non lo scorderai

  35. #30
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    1469
    Versione Office
    office pro 2010
    Utile ricevuti
    336
    Utile dati
    180

    Re: Copiare celle specifiche da due fogli

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    Ciao Draco... In merito al tuo script, ho iniziato ad approfondire ma.....qualcuno ce l'ha con Me...

    E si che sono certo di averti risposto... Mah! Fa niente. Eccomi a ripetermi

    Il problema di quell' errore è che io la macro l' ho scritta dentro al foglio che riceve i dati e tu, l' hai piazzata dentro un modulo standard. Mi dispiace. E' colpa mia che non l' ho probabilmente specificato.

    Quel ME. si riferisce proprio al contenitore in cui si trova l' istruzione, cioè dentro all' oggetto Worksheet (non mi ricordo come si chiama)

    Probabilmente hai due strade da percorrere per farla funzionare:

    Ho la copi dentro al foglio
    Oppure cambi tutti i "ME." con il riferimento esplicito al foglio in cui vanno a finire i dati copiati:

    Sostituisci "ME." con Workshets("Nome del foglio").
    oppure
    CodeNameDelFoglio.


    in bocca a lupo

Discussioni Simili

  1. [Risolto] Impedire la modifica su specifiche celle
    Di Domynix nel forum Domande su Excel in generale
    Risposte: 15
    Ultimo Messaggio: 07/01/17, 13:17
  2. [Risolto] Macro per copiare righe specifiche da una tabella ad un'altra
    Di MAT89 nel forum Domande su Excel VBA e MACRO
    Risposte: 16
    Ultimo Messaggio: 29/11/16, 08:08
  3. Risposte: 6
    Ultimo Messaggio: 23/10/16, 16:02
  4. Creare automaticamente fogli excel da un database in base a condizioni specifiche
    Di luigi.simone nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 30/07/16, 17:24
  5. cronometri con start e stop e posizionamento risultato in celle specifiche
    Di delittogoloso nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 08/03/16, 04:21

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •